From: Robert S. <ra...@gm...> - 2006-07-10 15:52:26
|
User: rawb Date: 06/07/10 11:52:23 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders InactiveExtensionViewProvider.java PropertySheetFactory.java EventLogViewProvider.java ModuleViewProvider.java Log: Various changes to extensions. Added property sheets for several. Revision Changes Path 1.2 +27 -2 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/InactiveExtensionViewProvider.java (In the diff below, changes in quantity of whitespace are not shown.) Index: InactiveExtensionViewProvider.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/InactiveExtensionViewProvider.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- InactiveExtensionViewProvider.java 27 Jun 2006 21:34:36 -0000 1.1 +++ InactiveExtensionViewProvider.java 10 Jul 2006 15:52:23 -0000 1.2 @@ -23,15 +23,19 @@ import java.util.ArrayList; +import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.jboss.ide.eclipse.as.core.util.ASDebug; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; +import org.jboss.ide.eclipse.as.ui.views.JBossServerView; public class InactiveExtensionViewProvider extends JBossServerViewExtension { @@ -102,8 +106,29 @@ } public void fillContextMenu(Shell shell, IMenuManager menu, Object selection) { - // TODO Auto-generated method stub - + final Object selected = selection; + if( selection instanceof ServerViewProvider && selection != this.provider) { + Action act = new Action() { + public void run() { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + if( selected instanceof ServerViewProvider) { + ((ServerViewProvider)selected).setEnabled(true); + ((ServerViewProvider)selected).getDelegate().getContentProvider(). + inputChanged(JBossServerView.getDefault().getJbViewer(), null, JBossServerView.getDefault().getSelectedServer()); + + try { + JBossServerView.getDefault().refreshJBTree(null); + } catch(Exception e) { + } + } + } + } ); + } + }; + act.setText("Re-Enable Category"); + menu.add(act); + } } public ITreeContentProvider getContentProvider() { 1.3 +45 -15 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/PropertySheetFactory.java (In the diff below, changes in quantity of whitespace are not shown.) Index: PropertySheetFactory.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/PropertySheetFactory.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- PropertySheetFactory.java 27 Jun 2006 21:34:36 -0000 1.2 +++ PropertySheetFactory.java 10 Jul 2006 15:52:23 -0000 1.3 @@ -58,15 +58,11 @@ * It has a tree-table and a text box and the two can be moved around. * @return */ - public static JBossServersViewPropertySheetPage createJBossServersPropertySheetPage() { - return new JBossServersViewPropertySheetPage(); + public static PropertiesTextSashPropertiesPage createPropertiesTextSashPropertiesPage() { + return new PropertiesTextSashPropertiesPage(); } - public static class JBossServersViewPropertySheetPage implements IPropertySheetPage { - private static final String TAG_SASHFORM_PROPERTIES = "sashformProperties"; - private static final String PROPERTIES_COLUMNS = "propertiesColumns"; - - + public static class PropertiesTextSashPropertiesPage implements IPropertySheetPage { protected TreeViewer propertiesViewer; protected SashForm propertiesForm; @@ -114,7 +110,7 @@ Composite c2 = new Composite(propertiesForm, SWT.NONE); c2.setLayout(new FillLayout()); - propertiesText = new Text(c2, SWT.BORDER); + propertiesText = new Text(c2, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.WRAP); propertiesForm.setWeights(sashCols); } @@ -131,24 +127,58 @@ } public void setActionBars(IActionBars actionBars) { - // TODO Auto-generated method stub - } public void setFocus() { - // TODO Auto-generated method stub - } public void selectionChanged(IWorkbenchPart part, ISelection selection) { try { - ASDebug.p("Selection changed: " + selection, this); - ASDebug.p(" - first element: " + ((IStructuredSelection)selection).getFirstElement(), this); + propertiesViewer.setInput(((IStructuredSelection)selection).getFirstElement()); } catch( Exception e ) { - ASDebug.p("Exception e: " + e.getMessage(), this); } } + + public void showTextOnly() { + sashCols[0] = 0; + sashCols[1] = 100; + propertiesForm.setWeights(sashCols); + } + + public void showPropertiesOnly() { + sashCols[0] = 100; + sashCols[1] = 0; + propertiesForm.setWeights(sashCols); + } + + public void setSashWeights(int properties, int text) { + sashCols[0] = properties; + sashCols[1] = text; + propertiesForm.setWeights(sashCols); + } + + public void setSashWeights(int[] weights) { + sashCols = weights; + propertiesForm.setWeights(weights); + } + + public void setContentProvider(ITreeContentProvider provider) { + propertiesViewer.setContentProvider(provider); + } + + public void setLabelProvider(ITableLabelProvider provider) { + propertiesViewer.setLabelProvider(provider); + } + + + public Text getText() { + return propertiesText; + } + + public TreeViewer getViewer() { + return propertiesViewer; + } } 1.4 +263 -14 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/EventLogViewProvider.java (In the diff below, changes in quantity of whitespace are not shown.) Index: EventLogViewProvider.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/EventLogViewProvider.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- EventLogViewProvider.java 27 Jun 2006 21:34:36 -0000 1.3 +++ EventLogViewProvider.java 10 Jul 2006 15:52:23 -0000 1.4 @@ -24,33 +24,49 @@ import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Set; import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PlatformUI; import org.eclipse.ui.views.properties.IPropertySheetPage; import org.eclipse.wst.server.core.IServer; import org.eclipse.wst.server.core.IServerType; import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager; import org.jboss.ide.eclipse.as.core.JBossServerCore; +import org.jboss.ide.eclipse.as.core.client.TwiddleLauncher.TwiddleLogEvent; import org.jboss.ide.eclipse.as.core.model.ServerProcessModel; +import org.jboss.ide.eclipse.as.core.model.ServerProcessLog.ExceptionLogEvent; import org.jboss.ide.eclipse.as.core.model.ServerProcessLog.ProcessLogEvent; import org.jboss.ide.eclipse.as.core.model.ServerProcessLog.ProcessLogEventRoot; +import org.jboss.ide.eclipse.as.core.model.ServerProcessModel.ConsoleLogEvent; import org.jboss.ide.eclipse.as.core.server.IServerLogListener; import org.jboss.ide.eclipse.as.core.server.JBossServer; +import org.jboss.ide.eclipse.as.core.server.JBossServerBehavior.PublishLogEvent; +import org.jboss.ide.eclipse.as.core.server.ServerStateChecker.StateCheckerLogEvent; +import org.jboss.ide.eclipse.as.core.util.ASDebug; import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; +import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.PropertiesTextSashPropertiesPage; import org.jboss.ide.eclipse.as.ui.views.JBossServerView; +import org.jboss.ide.eclipse.as.ui.views.JBossServerTableViewer.ContentWrapper; public class EventLogViewProvider extends JBossServerViewExtension implements IServerLogListener { protected EventLogLabelProvider categoryLabelProvider; protected EventLogContentProvider categoryContentProvider; + protected PropertiesTextSashPropertiesPage propertiesSheet; public EventLogViewProvider() { categoryLabelProvider = new EventLogLabelProvider(); @@ -67,6 +83,7 @@ } public void fillContextMenu(Shell shell, IMenuManager menu, Object selection) { + ASDebug.p("Inside fill context menu, selection is " + selection, this); } public ITreeContentProvider getContentProvider() { @@ -79,10 +96,55 @@ protected class EventLogLabelProvider extends LabelProvider { public String getText(Object obj) { + + if( obj instanceof StateCheckerLogEvent) { + StateCheckerLogEvent event = (StateCheckerLogEvent)obj; + + if( event.getEventType() == StateCheckerLogEvent.BEFORE) { + boolean expected = event.getExpectedState(); + return (expected == true ? "Starting Server" : "Stopping Server"); + } + + if( event.getEventType() == StateCheckerLogEvent.AFTER ) { + boolean current = (event.getCurrentState() == StateCheckerLogEvent.SERVER_UP); + return current ? "Server is up." : "Server is down."; + } + + if( event.getEventType() == StateCheckerLogEvent.DURING) { + String ret = "Twiddle Launch: Server is "; + if( event.getCurrentState() == StateCheckerLogEvent.SERVER_STARTING ) ret += "still starting"; + if( event.getCurrentState() == StateCheckerLogEvent.SERVER_STOPPING ) ret += "still stopping"; + if( event.getCurrentState() == StateCheckerLogEvent.SERVER_UP ) ret += "up"; + if( event.getCurrentState() == StateCheckerLogEvent.SERVER_DOWN ) ret += "down"; + return ret; + } + } + + if( obj instanceof ConsoleLogEvent) { + return "Console Output"; + } + + if( obj instanceof PublishLogEvent ) { + PublishLogEvent publishEvent = ((PublishLogEvent)obj); + if( publishEvent.getEventType() == PublishLogEvent.ROOT) { + return "Publish Event"; + } + if( publishEvent.getEventType() == PublishLogEvent.PUBLISH) { + return "Publishing module to server: " + publishEvent.getModuleName(); + } + if( publishEvent.getEventType() == PublishLogEvent.UNPUBLISH) { + return "Removing module from server: " + publishEvent.getModuleName(); + } + return "Unknown Publish Event"; + } + if( obj instanceof ExceptionLogEvent ) { + ExceptionLogEvent event = ((ExceptionLogEvent)obj); + return event.getException().getLocalizedMessage(); + } if( obj instanceof ProcessLogEvent ) { ProcessLogEvent event = ((ProcessLogEvent)obj); SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss.S"); - return event.getText() + " " + format.format(new Date(event.getDate())); + return event.toString() + " " + format.format(new Date(event.getDate())); } return obj.toString(); } @@ -91,32 +153,51 @@ IServer server = event.getRoot().getServer(); IServerType serverType = server.getServerType(); - if( obj instanceof ProcessLogEvent ) { - if( event.getEventType() == ProcessLogEvent.SERVER_STARTING) { + if( obj instanceof StateCheckerLogEvent ) { + StateCheckerLogEvent scle = (StateCheckerLogEvent)obj; + if( scle.getEventType() == StateCheckerLogEvent.BEFORE) { + boolean expected = scle.getExpectedState(); + if( expected ) return getStateImage(serverType, IServer.STATE_STARTED, server.getMode()); + return getStateImage(serverType, IServer.STATE_STOPPED, server.getMode()); + } + + if( scle.getCurrentState() == StateCheckerLogEvent.SERVER_STARTING) { return getStateImage(serverType, IServer.STATE_STARTING, server.getMode()); } - if( event.getEventType() == ProcessLogEvent.SERVER_STOPPING) { + if( scle.getCurrentState() == StateCheckerLogEvent.SERVER_STOPPING) { return getStateImage(serverType, IServer.STATE_STOPPING, server.getMode()); } - if( event.getEventType() == ProcessLogEvent.SERVER_UP) { + if( scle.getCurrentState() == StateCheckerLogEvent.SERVER_UP) { return getStateImage(serverType, IServer.STATE_STARTED, server.getMode()); } - if( event.getEventType() == ProcessLogEvent.SERVER_DOWN) { + if( scle.getCurrentState() == StateCheckerLogEvent.SERVER_DOWN) { return getStateImage(serverType, IServer.STATE_STOPPED, server.getMode()); } - if( event.getEventType() == ProcessLogEvent.SERVER_CONSOLE) { + } + if( obj instanceof ConsoleLogEvent ) { return JBossServerUISharedImages.getImage(JBossServerUISharedImages.CONSOLE_IMAGE); } - if( event.getEventType() == ProcessLogEvent.TWIDDLE) { - return JBossServerUISharedImages.getImage(JBossServerUISharedImages.TWIDDLE_IMAGE); + if( obj instanceof PublishLogEvent) { + if( event.getEventType() == PublishLogEvent.ROOT) { + return JBossServerUISharedImages.getImage(JBossServerUISharedImages.PUBLISH_IMAGE); } - if( event.getEventType() == ProcessLogEvent.SERVER_PUBLISH) { + if( event.getEventType() == PublishLogEvent.PUBLISH) { return JBossServerUISharedImages.getImage(JBossServerUISharedImages.PUBLISH_IMAGE); } - if( event.getEventType() == ProcessLogEvent.SERVER_UNPUBLISH) { + if( event.getEventType() == PublishLogEvent.UNPUBLISH) { return JBossServerUISharedImages.getImage(JBossServerUISharedImages.UNPUBLISH_IMAGE); } } + if( obj instanceof ExceptionLogEvent ) { + return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK); + } + if( obj instanceof TwiddleLogEvent ) { + return JBossServerUISharedImages.getImage(JBossServerUISharedImages.TWIDDLE_IMAGE); + } + + + + return null; } @@ -176,7 +257,175 @@ public IPropertySheetPage getPropertySheetPage() { + if( propertiesSheet == null ) { + createPropertiesSheet(); + } + return propertiesSheet; + } + + protected void createPropertiesSheet() { + try { + propertiesSheet = new EventLogPropertiesSheetPage(); + } catch( Exception e ) { + e.printStackTrace(); + } + } + + protected class EventLogPropertiesProvider extends LabelProvider + implements ITableLabelProvider, ITreeContentProvider { + + public static final int SHOW_TEXT = 1; + public static final int SHOW_TREE = 2; + + public final static String STATECHECKER_PROPERTIES = "_STATECHECKER_PROPERTIES_"; + + + protected Object newInput; + + public int getContentType(Object selected) { + if( selected instanceof ConsoleLogEvent ) return SHOW_TEXT; + if( selected instanceof TwiddleLogEvent ) return SHOW_TREE; + if( selected instanceof StateCheckerLogEvent ) return SHOW_TREE; + return SHOW_TREE ; + } + + public String getTextContent(Object selected) { + if( selected instanceof ConsoleLogEvent ) return ((ConsoleLogEvent)selected).toString(); + if( selected instanceof StateCheckerLogEvent) return ((StateCheckerLogEvent)selected).getTwiddleLogEvent().getOut(); + return ""; + } + + public Object[] getChildren(Object parentElement) { + // top level elements for the input + if( newInput instanceof StateCheckerLogEvent ) + return getChildren_((StateCheckerLogEvent)newInput, parentElement); + + if( newInput instanceof PublishLogEvent ) { + if( newInput == parentElement ) { + Set s = ((PublishLogEvent)parentElement).getProperties().keySet(); + return (Object[]) s.toArray(new Object[s.size()]); + } + + + PublishLogEvent pubEvent = (PublishLogEvent)newInput; + } + + return new Object[0]; + } + + protected Object[] getChildren_(StateCheckerLogEvent input, Object parent) { + if( input == parent ) return input.getAvailableProperties(); + + return new Object[] { }; + } + + protected String getColumnText_(StateCheckerLogEvent input, Object element, int columnIndex) { + try { + if( columnIndex == 0 ) return element.toString(); + if( columnIndex == 1 ) return input.getProperty(element).toString(); + } catch( Exception e) {} + return ""; + } + + + public String getColumnText(Object element, int columnIndex) { + if( newInput instanceof StateCheckerLogEvent) return getColumnText_((StateCheckerLogEvent)newInput, element, columnIndex); + + if( newInput instanceof PublishLogEvent ) { + + try { + if( columnIndex == 0 ) return element.toString(); + if( columnIndex == 1 ) return ((ProcessLogEvent)newInput).getProperty(element).toString(); + } catch( Exception e) {} + return ""; + } + + return element.toString(); + } + + + + public Object getParent(Object element) { + return null; + } + + public boolean hasChildren(Object element) { + return getChildren(element).length > 0 ? true : false; + } + + public Object[] getElements(Object inputElement) { + return getChildren(inputElement); + } + + public void dispose() { + // TODO Auto-generated method stub + + } + + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + this.newInput = newInput; + } + + + public Image getColumnImage(Object element, int columnIndex) { return null; } + + + } + + public class Pair { + public Object fFirst = null; + public Object fSecond = null; + public Pair(Object first, Object second) { + fFirst = first; + fSecond = second; + } + } + + protected class EventLogPropertiesSheetPage extends PropertiesTextSashPropertiesPage { + + + public void createControl(Composite parent) { + super.createControl(parent); + EventLogPropertiesProvider p = new EventLogPropertiesProvider(); + setContentProvider(p); + setLabelProvider(p); + } + + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + if( selection instanceof IStructuredSelection ) { + Object selectedElement = ((IStructuredSelection)selection).getFirstElement(); + if( selectedElement instanceof ContentWrapper) { + selectedElement = ((ContentWrapper)selectedElement).getElement(); + } + + int type = getContentProvider().getContentType(selectedElement); + + // weight + if( type == (EventLogPropertiesProvider.SHOW_TEXT | + EventLogPropertiesProvider.SHOW_TREE )) { + + setSashWeights(new int[] {50, 50}); + getText().setText(getContentProvider().getTextContent(selectedElement)); + this.propertiesViewer.setInput(selectedElement); + + } else if( type == EventLogPropertiesProvider.SHOW_TEXT) { + showTextOnly(); + getText().setText(getContentProvider().getTextContent(selectedElement)); + + } else if( type == EventLogPropertiesProvider.SHOW_TREE ) { + showPropertiesOnly(); + this.propertiesViewer.setInput(selectedElement); + } + + } + } + + public EventLogPropertiesProvider getContentProvider() { + return ((EventLogPropertiesProvider)propertiesViewer.getContentProvider()); + } + } + } 1.5 +2 -2 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/ModuleViewProvider.java (In the diff below, changes in quantity of whitespace are not shown.) Index: ModuleViewProvider.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/viewproviders/ModuleViewProvider.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- ModuleViewProvider.java 27 Jun 2006 21:34:36 -0000 1.4 +++ ModuleViewProvider.java 10 Jul 2006 15:52:23 -0000 1.5 @@ -196,9 +196,9 @@ JBossServer server = (JBossServer)obj; String ret = server.getServer().getName(); ret += " ("; - String home = server.getRuntimeConfiguration().getServerHome(); + String home = server.getAttributeHelper().getServerHome(); ret += (home.length() > 30 ? home.substring(0,30) + "..." : home); - ret += ", " + server.getRuntimeConfiguration().getJbossConfiguration() + ")"; + ret += ", " + server.getAttributeHelper().getJbossConfiguration() + ")"; return ret; } return null; |