[368778] Empty Servers View Default Message (Patch included)
diff --git a/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html b/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html
index b11e999..0cdf9af 100644
--- a/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html
+++ b/features/org.eclipse.wst.server_ui.feature.patch/buildnotes_org.eclipse.wst.server_ui.feature.patch.html
@@ -4,17 +4,16 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Build" content="Build">
- <title>WTP 3.2.2 Patches</title>
+ <title>WTP 3.2.5 Patches</title>
</head>
<body>
-<h1>WTP 3.2.2 Patches</h1>
+<h1>WTP 3.2.5 Patches</h1>
<h2>Feature Patched: org.eclipse.wst.server_ui.feature</h2>
<h3>Plugin(s) replaced:</h3>
<ul><li>org.eclipse.wst.server.ui</li></ul>
-<p>Bug <a href='https://bugs.eclipse.org/326318'>326318</a>. Sever never shows publishing state and in sync state prematurely</p>
-<p>Bug <a href='https://bugs.eclipse.org/327247'>327247</a>. Deadlock during debugging</p>
+<p>Bug <a href='https://bugs.eclipse.org/368778'>368778</a>. Empty Servers View Default Message (Patch included)</p>
</body></html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.server_ui.feature.patch/feature.properties b/features/org.eclipse.wst.server_ui.feature.patch/feature.properties
index 00695d2..c58d1b0 100644
--- a/features/org.eclipse.wst.server_ui.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.server_ui.feature.patch/feature.properties
@@ -27,8 +27,7 @@
description=\
Contains fixes described in the following bugzilla(s):\n\
\n\
-Bug https://bugs.eclipse.org/326318 Sever never shows publishing state and in sync state prematurely\n\
-Bug https://bugs.eclipse.org/327247 Deadlock during debugging\n\
+Bug https://bugs.eclipse.org/368778 Empty Servers View Default Message (Patch included)\n\
\n\
# "copyright" property - text of the "Feature Update Copyright"
copyright=\
diff --git a/features/org.eclipse.wst.server_ui.feature.patch/feature.xml b/features/org.eclipse.wst.server_ui.feature.patch/feature.xml
index 948172a..75c07a4 100644
--- a/features/org.eclipse.wst.server_ui.feature.patch/feature.xml
+++ b/features/org.eclipse.wst.server_ui.feature.patch/feature.xml
@@ -1,18 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.eclipse.wst.server_ui.feature.patch"
- label="%featureName"
- version="3.2.2.qualifier"
- provider-name="%providerName">
+ label="%featureName"
+ version="3.2.5.qualifier"
+ provider-name="%providerName">
- <description>%description</description>
+ <description>
+ %description
+ </description>
- <copyright>%copyright</copyright>
+ <copyright>
+ %copyright
+ </copyright>
- <license url="%licenseURL">%license</license>
+ <license url="%licenseURL">
+ %license
+ </license>
<requires>
- <import feature="org.eclipse.wst.server_ui.feature" version="3.2.2.v20100908-7B4FBrAtJb1nESKmCJHPGQ347" patch="true"/>
+ <import feature="org.eclipse.wst.server_ui.feature" version="3.2.5.v20110706-7B4FDjAtJcbvFLNiPIYMRMjBF56" patch="true"/>
</requires>
<plugin
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 64f94fd..119ee0f 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.1.209.qualifier
+Bundle-Version: 1.1.210.qualifier
Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
index 2665029..f29fe0f 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
@@ -363,6 +363,8 @@
public static String internalWebBrowserName;
+ public static String ServersView2_noServers;
+
static {
NLS.initializeMessages(ServerUIPlugin.PLUGIN_ID + ".internal.Messages", Messages.class);
}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
index fae6d5e..d4148fe 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
@@ -510,3 +510,4 @@
errorStartingMonitor=Could not start the server monitor: {0}
internalWebBrowserName=Internal Web Browser
+ServersView2_noServers=No servers available. Define a new server from the <a>new server wizard</a>...
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 f563b65..9d3460f 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
@@ -20,12 +20,21 @@
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.*;
import org.eclipse.ui.contexts.IContextService;
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.navigator.CommonNavigator;
import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.part.PageBook;
import org.eclipse.wst.server.core.*;
import org.eclipse.wst.server.core.internal.Server;
import org.eclipse.wst.server.core.internal.UpdateServerJob;
@@ -33,6 +42,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.wizard.NewServerWizard;
/**
* A view of servers, their modules, and status.
*/
@@ -40,6 +50,9 @@
private static final String SERVERS_VIEW_CONTEXT = "org.eclipse.ui.serverViewScope";
protected CommonViewer tableViewer;
+ private Control mainPage;
+ private Control noServersPage;
+ PageBook book;
protected IServerLifecycleListener serverResourceListener;
protected IPublishListener publishListener;
@@ -60,14 +73,63 @@
@Override
public void createPartControl(Composite parent) {
- super.createPartControl(parent);
+ // Add PageBook as parent composite
+ FormToolkit toolkit = new FormToolkit(parent.getDisplay());
+ book = new PageBook(parent, SWT.NONE);
+ super.createPartControl(book);
+ // Main page for the Servers tableViewer
+ mainPage = getCommonViewer().getControl();
+ // Page prompting to define a new server
+ noServersPage = createDefaultPage(toolkit);
+ book.showPage(mainPage);
IContextService contextSupport = (IContextService)getSite().getService(IContextService.class);
contextSupport.activateContext(SERVERS_VIEW_CONTEXT);
-
deferInitialization();
}
+ /**
+ * Creates a page displayed when there are no servers defined.
+ *
+ * @param kit
+ * @return Control
+ */
+ private Control createDefaultPage(FormToolkit kit){
+ Form form = kit.createForm(book);
+ Composite body = form.getBody();
+ 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));
+ GridData gd = new GridData(SWT.LEFT, SWT.FILL, true, false);
+ hlink.setLayoutData(gd);
+ hlink.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ NewServerWizard wizard = new NewServerWizard();
+ WizardDialog wd = new WizardDialog(book.getShell(), wizard);
+ if( wd.open() == Window.OK){
+ toggleDefultPage();
+ }
+ }
+ });
+
+ return form;
+ }
+
+ /**
+ * Switch between the servers and default/empty page.
+ *
+ */
+ void toggleDefultPage(){
+ if(tableViewer.getTree().getItemCount() < 1){
+ book.showPage(noServersPage);
+ } else{
+ book.showPage(mainPage);
+ }
+ }
+
private void deferInitialization() {
// TODO Angel Says: Need to do a final check on this line below. I don't think there is anything else
// that we need from to port from the old Servers View
@@ -121,6 +183,8 @@
if (tableViewer.getTree().getItemCount() > 0) {
Object obj = tableViewer.getTree().getItem(0).getData();
tableViewer.setSelection(new StructuredSelection(obj));
+ } else{
+ toggleDefultPage();
}
}
});
@@ -267,6 +331,7 @@
Display.getDefault().asyncExec(new Runnable() {
public void run() {
tableViewer.add(tableViewer.getInput(), server);
+ toggleDefultPage();
}
});
}
@@ -275,6 +340,7 @@
Display.getDefault().asyncExec(new Runnable() {
public void run() {
tableViewer.remove(server);
+ toggleDefultPage();
}
});
}