[213534] Module tooltip support
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
index a2c91af..487c21b 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
@@ -44,10 +44,12 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.IServerType;
import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.core.internal.Server;
import org.eclipse.wst.server.core.internal.Trace;
+import org.eclipse.wst.server.ui.IServerModule;
import org.eclipse.wst.server.ui.IServerToolTip;
/**
*
@@ -56,7 +58,6 @@
protected Hashtable<String,ArrayList<IServerToolTip>> toolTipProviders = new Hashtable<String,ArrayList<IServerToolTip>>();
protected static Shell CURRENT_TOOLTIP;
protected Label hintLabel;
- protected Server server;
protected Tree tree;
protected int x;
protected int y;
@@ -104,9 +105,9 @@
control.getDisplay().asyncExec(new Runnable() {
public void run() {
Event event = new Event();
- event.x =x;
- event.y =y;
- event.widget= tree;
+ event.x = x;
+ event.y = y;
+ event.widget = tree;
createToolTipContentArea(event,stickyTooltip);
stickyTooltip.pack();
@@ -144,41 +145,65 @@
}
protected Composite createToolTipContentArea(Event event, Composite parent) {
- Object o = tree.getItem(new Point(event.x,event.y));
+ Object o = tree.getItem(new Point(event.x, event.y));
if (o == null) {
hide();
return null;
}
+
+ IServer server = null;
+ IServerModule module = null;
if (o instanceof TreeItem) {
- server = (Server)((TreeItem)o).getData();
- }
+ Object obj = ((TreeItem)o).getData();
+ if (obj instanceof IServer)
+ server = (IServer) obj;
+ if (obj instanceof IServerModule)
+ module = (IServerModule) obj;
+ }
FillLayout layout = (FillLayout)parent.getLayout();
- layout.type = SWT.VERTICAL;
+ layout.type = SWT.VERTICAL;
parent.setLayout(layout);
- // Set the default text for the tooltip
- StyledText sText = new StyledText(parent,SWT.NONE);
+ // set the default text for the tooltip
+ StyledText sText = new StyledText(parent, SWT.NONE);
sText.setEditable(false);
sText.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- sText.setText("<b>"+server.getName()+"</b>");
- // Add adopters content
- ArrayList<IServerToolTip> listOfProviders = toolTipProviders.get(server.getServerType().getId());
+ if (module != null) {
+ IModule[] modules = module.getModule();
+ IModule m = modules[modules.length - 1];
+ sText.setText("<b>" + m.getName() + "</b>");
+ //sText.setText("<b>" + m.getName() + "</b></p>" + m.getModuleType().getName());
+
+ StyledText sText2 = new StyledText(parent, SWT.NONE);
+ sText2.setEditable(false);
+ sText2.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
+ sText2.setText(m.getModuleType().getName());
+ }
- final Composite adoptersComposite = new Composite(parent,SWT.NONE);
- adoptersComposite.setLayout(new FillLayout());
- adoptersComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-
- if (listOfProviders != null){
- for (IServerToolTip tipProvider : listOfProviders){
- tipProvider.createContent(adoptersComposite,server);
- }
- }
+ if (server != null) {
+ sText.setText("<b>" + server.getName() + "</b>");
+
+ // add adopters content
+ if (server.getServerType() != null) {
+ ArrayList<IServerToolTip> listOfProviders = toolTipProviders.get(server.getServerType().getId());
- // Add the F3 text
+ final Composite adoptersComposite = new Composite(parent,SWT.NONE);
+ adoptersComposite.setLayout(new FillLayout());
+ adoptersComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
+
+ if (listOfProviders != null) {
+ for (IServerToolTip tipProvider : listOfProviders) {
+ tipProvider.createContent(adoptersComposite,server);
+ }
+ }
+ }
+ }
+
+ // add the F3 text
hintLabel = new Label(parent,SWT.BORDER);
- hintLabel.setAlignment(SWT.RIGHT);
+ hintLabel.setAlignment(SWT.RIGHT);
hintLabel.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
hintLabel.setText(Messages.toolTipEnableFocus);
hintLabel.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
@@ -194,15 +219,15 @@
public void widgetDisposed(DisposeEvent e) {
font.dispose();
}
- });
+ });
hintLabel.setFont(font);
-
+
parseText(sText.getText(),sText);
-
+
return parent;
}
- protected void parseText(String htmlText,StyledText sText){
+ protected void parseText(String htmlText,StyledText sText) {
TextPresentation presentation = new TextPresentation();
HTML2TextReader reader = new HTML2TextReader(new StringReader(htmlText), presentation);
String text;
@@ -244,10 +269,10 @@
ArrayList<IServerToolTip> listOfProviders = new ArrayList<IServerToolTip>();
if (toolTipProviders.containsKey(serverType)) {
listOfProviders = toolTipProviders.get(serverType);
- }
+ }
listOfProviders.add(exTooltip);
toolTipProviders.put(serverType.getId(), listOfProviders);
- } catch (CoreException e){
+ } catch (CoreException e) {
Trace.trace(Trace.SEVERE, "Tooltip failed to load" + extensions[i].toString(), e);
}
Trace.trace(Trace.EXTENSION_POINT, " Loaded serverToolTip: " + extensions[i].getAttribute("id"));