[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());