[572558] Servers view: Add a way to sort servers
diff --git a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
index 653091b..fe45ea4 100644
--- a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.wst.server.ui; singleton:=true
-Bundle-Version: 1.5.600.qualifier
+Bundle-Version: 1.5.700.qualifier
Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -24,11 +24,11 @@
org.eclipse.wst.server.ui.internal.wizard.page;x-internal:=true,
org.eclipse.wst.server.ui.wizard
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)",
org.eclipse.core.expressions;bundle-version="[3.2.0,4.0.0)",
org.eclipse.wst.server.discovery;bundle-version="[1.0.0,2.0.0)",
org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.18.0,4.0.0)",
org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui.browser;bundle-version="[3.2.0,4.0.0)",
@@ -39,6 +39,6 @@
org.eclipse.wst.internet.monitor.core;bundle-version="[1.0.103,2.0.0)",
org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)",
org.eclipse.wst.common.project.facet.ui;bundle-version="[1.1.0,2.0.0)";resolution:=optional,
- org.eclipse.ui.navigator;bundle-version="[3.3.100,4.0.0)"
+ org.eclipse.ui.navigator;bundle-version="[3.10.0,4.0.0)"
Bundle-ActivationPolicy: lazy;exclude:="org.eclipse.wst.server.ui.internal.webbrowser"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.wst.server.ui/pom.xml b/plugins/org.eclipse.wst.server.ui/pom.xml
index b1ee7c9..b4b2c23 100644
--- a/plugins/org.eclipse.wst.server.ui/pom.xml
+++ b/plugins/org.eclipse.wst.server.ui/pom.xml
@@ -22,6 +22,6 @@
<groupId>org.eclipse.webtools.servertools</groupId>
<artifactId>org.eclipse.wst.server.ui</artifactId>
- <version>1.5.600-SNAPSHOT</version>
+ <version>1.5.700-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServersView2.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServersView2.java
index afdfbfd..7cef83e 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServersView2.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServersView2.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008,2012 IBM Corporation and others.
+ * Copyright (c) 2008, 2021 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -48,6 +48,7 @@
import org.eclipse.wst.server.ui.internal.Messages;
import org.eclipse.wst.server.ui.internal.ServerToolTip;
import org.eclipse.wst.server.ui.internal.Trace;
+import org.eclipse.wst.server.ui.internal.viewers.DefaultViewerSorter;
import org.eclipse.wst.server.ui.internal.wizard.NewServerWizard;
/**
* A view of servers, their modules, and status.
@@ -85,6 +86,7 @@
super.createPartControl(book);
// Main page for the Servers tableViewer
mainPage = getCommonViewer().getControl();
+ getCommonViewer().setSorter(new DefaultViewerSorter());
// Page prompting to define a new server
noServersPage = createDefaultPage(toolkit);
book.showPage(mainPage);
@@ -103,9 +105,9 @@
private Control createDefaultPage(FormToolkit kit){
Form form = kit.createForm(book);
Composite body = form.getBody();
- GridLayout layout = new GridLayout(2, false);
- body.setLayout(layout);
-
+ GridLayout layout = new GridLayout(2, false);
+ body.setLayout(layout);
+
Link hlink = new Link(body, SWT.NONE);
hlink.setText(Messages.ServersView2_noServers);
hlink.setBackground(book.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
@@ -116,7 +118,7 @@
NewServerWizard wizard = new NewServerWizard();
WizardDialog wd = new WizardDialog(book.getShell(), wizard);
if( wd.open() == Window.OK){
- toggleDefultPage();
+ toggleDefaultPage();
}
}
});
@@ -170,7 +172,7 @@
* Switch between the servers and default/empty page.
*
*/
- void toggleDefultPage(){
+ void toggleDefaultPage(){
if(tableViewer.getTree().getItemCount() < 1){
book.showPage(noServersPage);
} else{
@@ -233,7 +235,7 @@
Object obj = tableViewer.getTree().getItem(0).getData();
tableViewer.setSelection(new StructuredSelection(obj));
} else{
- toggleDefultPage();
+ toggleDefaultPage();
}
}
catch (Exception e){
@@ -386,7 +388,7 @@
Display.getDefault().asyncExec(new Runnable() {
public void run() {
tableViewer.add(tableViewer.getInput(), server);
- toggleDefultPage();
+ toggleDefaultPage();
}
});
}
@@ -395,7 +397,7 @@
Display.getDefault().asyncExec(new Runnable() {
public void run() {
tableViewer.remove(server);
- toggleDefultPage();
+ toggleDefaultPage();
}
});
}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
index 5bcea7c..8bee4a0 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2018 IBM Corporation and others.
+ * Copyright (c) 2005, 2021 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
*******************************************************************************/
package org.eclipse.wst.server.ui.internal.viewers;
+import java.text.Collator;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@@ -21,9 +22,11 @@
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.wst.server.core.IRuntimeType;
import org.eclipse.wst.server.core.IServerType;
+import org.eclipse.wst.server.core.internal.Base;
+
/**
- * Class used to sort categories, runtime types, and server types in the
- * New wizards.
+ * Class used to sort categories, runtime and server types, and server instances
+ * in the New wizards and Servers View.
*/
public class DefaultViewerSorter extends ViewerSorter {
private static AlphanumComparator alphanum = new AlphanumComparator();
@@ -111,6 +114,10 @@
if (o1 instanceof IServerType && o2 instanceof IServerType)
return compareServerTypes((IServerType) o1, (IServerType) o2);
+ if (o1 instanceof Base && o2 instanceof Base) {
+ return Collator.getInstance().compare(((Base)o1).getName(), ((Base)o2).getName());
+ }
+
return 0;
}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTableLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTableLabelProvider.java
index 45d61e4..5475eab 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTableLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTableLabelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2021 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -12,12 +12,16 @@
*******************************************************************************/
package org.eclipse.wst.server.ui.internal.viewers;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.viewers.ILabelDecorator;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IRuntimeType;
import org.eclipse.wst.server.ui.internal.ImageResource;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
/**
* Runtime table label provider.
*/
@@ -44,6 +48,10 @@
public Image getColumnImage(Object element, int columnIndex) {
if (columnIndex == 0) {
IRuntime runtime = (IRuntime) element;
+ IStatus status = runtime.validate(new NullProgressMonitor());
+ if (status != null && status.getSeverity() == IStatus.ERROR) {
+ return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
+ }
IRuntimeType runtimeType = runtime.getRuntimeType();
if (runtimeType != null) {
Image image = ImageResource.getImage(runtimeType.getId());