From: Marshall C. <mcu...@jb...> - 2006-06-02 16:52:38
|
User: mculpepper Date: 06/06/02 12:52:32 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerLogView.java Log: appended JBoss LGPL header to all files, added License.txt to distribution Revision Changes Path 1.4 +21 -0 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerLogView.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerLogView.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerLogView.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- JBossServerLogView.java 1 Jun 2006 12:14:56 -0000 1.3 +++ JBossServerLogView.java 2 Jun 2006 16:52:32 -0000 1.4 @@ -1,3 +1,24 @@ +/* + * JBoss, Home of Professional Open Source + * Copyright 2006, JBoss Inc., and individual contributors as indicated + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ package org.jboss.ide.eclipse.as.ui.views; import java.text.SimpleDateFormat; |
From: Robert S. <ra...@gm...> - 2006-06-20 16:12:15
|
User: rawb Date: 06/06/20 12:12:07 Added: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java JBossServerView.java Log: Good enough for nightly builds Revision Changes Path 1.1 date: 2006/06/20 16:12:07; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java Index: JBossServerTableViewer.java =================================================================== package org.jboss.ide.eclipse.as.ui.views; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TreeSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Tree; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; 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.ui.ServerUICore; import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager; import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer; import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider; import org.eclipse.wst.server.ui.internal.view.servers.ServerTableViewer; import org.jboss.ide.eclipse.as.core.model.ServerProcessModel; import org.jboss.ide.eclipse.as.core.model.ServerProcessLog.ProcessLogEvent; import org.jboss.ide.eclipse.as.core.model.ServerProcessModel.ServerProcessModelEntity; import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages; import org.jboss.ide.eclipse.as.ui.Messages; public class JBossServerTableViewer extends TreeViewer { private ServerTableViewer serverViewer; public JBossServerTableViewer(Tree tree, ServerTableViewer serverViewer) { super(tree); this.serverViewer = serverViewer; addListeners(); setContentProvider(new JBSContentProvider()); setLabelProvider(new JBSLabelProvider()); } protected void addListeners() { serverViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { Object current = getInput(); Object selection = ((TreeSelection)event.getSelection()).getFirstElement(); Object server = selection; if( selection instanceof ModuleServer ) { server = ((ModuleServer)selection).server; } if( getInput() != server ) setInput(server); } }); } protected class EventLogLabelProvider extends LabelProvider { public String getText(Object obj) { 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 obj.toString(); } public Image getImage(Object obj) { ProcessLogEvent event = (ProcessLogEvent)obj; IServer server = event.getRoot().getServer(); IServerType serverType = server.getServerType(); if( obj instanceof ProcessLogEvent ) { if( event.getEventType() == ProcessLogEvent.SERVER_STARTING) { return getStateImage(serverType, IServer.STATE_STARTING, server.getMode()); } if( event.getEventType() == ProcessLogEvent.SERVER_STOPPING) { return getStateImage(serverType, IServer.STATE_STOPPING, server.getMode()); } if( event.getEventType() == ProcessLogEvent.SERVER_UP) { return getStateImage(serverType, IServer.STATE_STARTED, server.getMode()); } if( event.getEventType() == ProcessLogEvent.SERVER_DOWN) { return getStateImage(serverType, IServer.STATE_STOPPED, server.getMode()); } if( event.getEventType() == ProcessLogEvent.SERVER_CONSOLE) { return JBossServerUISharedImages.getImage(JBossServerUISharedImages.CONSOLE_IMAGE); } if( event.getEventType() == ProcessLogEvent.TWIDDLE) { return JBossServerUISharedImages.getImage(JBossServerUISharedImages.TWIDDLE_IMAGE); } if( event.getEventType() == ProcessLogEvent.SERVER_PUBLISH) { return JBossServerUISharedImages.getImage(JBossServerUISharedImages.PUBLISH_IMAGE); } if( event.getEventType() == ProcessLogEvent.SERVER_UNPUBLISH) { return JBossServerUISharedImages.getImage(JBossServerUISharedImages.UNPUBLISH_IMAGE); } } return null; } protected Image getStateImage(IServerType serverType, int state, String mode) { return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode, 0); } } protected class JBSLabelProvider extends LabelProvider { private EventLogLabelProvider logDelegate; private ServerTableLabelProvider moduleDelegate; public JBSLabelProvider() { logDelegate = new EventLogLabelProvider(); moduleDelegate = new ServerTableLabelProvider(); } public String getText(Object obj) { if( obj instanceof ProcessLogEvent) { return logDelegate.getText(obj); } if( obj instanceof IModule ) { return ServerUICore.getLabelProvider().getText(obj); } return obj.toString(); } public Image getImage(Object obj) { if( obj instanceof ProcessLogEvent) { return logDelegate.getImage(obj); } if( obj instanceof IModule ) { return ServerUICore.getLabelProvider().getImage(obj); } String imageKey = ISharedImages.IMG_OBJ_ELEMENT; return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey); } } protected class JBSContentProvider implements IStructuredContentProvider, ITreeContentProvider { protected String[] topLevelCategories; public JBSContentProvider() { initializeCategories(); } protected void initializeCategories() { ArrayList list = new ArrayList(); list.add(Messages.ModulesCategory); list.add(Messages.EventLogCategory); topLevelCategories = new String[list.size()]; list.toArray(topLevelCategories); } public Object[] getElements(Object inputElement) { return topLevelCategories; } public void dispose() { // TODO Auto-generated method stub } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // TODO Auto-generated method stub } public Object[] getChildren(Object parentElement) { if( parentElement.equals(Messages.ModulesCategory)) { IServer server = (IServer)getInput(); return server.getModules(); } if( parentElement.equals(Messages.EventLogCategory)) { IServer server = (IServer)getInput(); ServerProcessModelEntity ent = ServerProcessModel.getDefault().getModel(server.getId()); return ent.getEventLog().getChildren(); } if( parentElement instanceof ProcessLogEvent ) { return ((ProcessLogEvent)parentElement).getChildren(); } return new Object[0]; } public Object getParent(Object element) { // TODO Auto-generated method stub return null; } public boolean hasChildren(Object element) { return getChildren(element).length > 0 ? true : false; } } } 1.1 date: 2006/06/20 16:12:07; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java Index: JBossServerView.java =================================================================== /* * JBoss, Home of Professional Open Source * Copyright 2006, JBoss Inc., and individual contributors as indicated * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.ide.eclipse.as.ui.views; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Tree; import org.eclipse.ui.IMemento; import org.eclipse.ui.IViewSite; import org.eclipse.ui.PartInitException; import org.eclipse.wst.server.ui.internal.ServerUIPlugin; import org.eclipse.wst.server.ui.internal.view.servers.ServersView; public class JBossServerView extends ServersView { private static final String TAG_SASHFORM_HEIGHT = "sashformHeight"; protected int[] rows; protected SashForm form; protected JBossServerTableViewer jbViewer; protected Tree jbTreeTable; public void createPartControl(Composite parent) { form = new SashForm(parent, SWT.VERTICAL); form.setLayout(new FillLayout()); addServerViewer(form); addSecondViewer(form); form.setWeights(rows); } private void addServerViewer(Composite form) { Composite child1 = new Composite(form,SWT.NONE); child1.setLayout(new GridLayout()); super.createPartControl(child1); //tableViewer.setContentProvider(new ServerContentProvider2()); } private void addSecondViewer(Composite form) { Composite child2 = new Composite(form,SWT.NONE); child2.setLayout(new FillLayout()); jbTreeTable = new Tree(child2, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); jbViewer = new JBossServerTableViewer(jbTreeTable, tableViewer); } /** * Save some state */ public void init(IViewSite site, IMemento memento) throws PartInitException { super.init(site, memento); ServerUIPlugin.getPreferences().setShowOnActivity(false); int sum = 0; rows = new int[2]; for (int i = 0; i < 2; i++) { rows[i] = (i == rows.length-1 ? 100-sum : 50); if (memento != null) { Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i); if (in != null && in.intValue() > 5) rows[i] = in.intValue(); } sum += rows[i]; } } public void saveState(IMemento memento) { int[] weights = form.getWeights(); for (int i = 0; i < 2; i++) { if (weights[i] != 0) memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]); } } } |
From: Robert S. <ra...@gm...> - 2006-06-22 20:54:15
|
User: rawb Date: 06/06/22 16:54:10 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java JBossServerView.java Added: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerViewExtension.java Removed: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerLogView.java Log: Added an extension point and refactored the view to allow for these extensions. More changes will come. Revision Changes Path 1.2 +176 -30 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerTableViewer.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- JBossServerTableViewer.java 20 Jun 2006 16:12:07 -0000 1.1 +++ JBossServerTableViewer.java 22 Jun 2006 20:54:10 -0000 1.2 @@ -4,15 +4,17 @@ import java.util.ArrayList; import java.util.Date; -import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.TreeSelection; import org.eclipse.jface.viewers.TreeViewer; 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.swt.widgets.Tree; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; @@ -21,48 +23,134 @@ import org.eclipse.wst.server.core.IServerType; import org.eclipse.wst.server.ui.ServerUICore; import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager; -import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer; import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider; -import org.eclipse.wst.server.ui.internal.view.servers.ServerTableViewer; +import org.jboss.ide.eclipse.as.core.JBossServerCore; import org.jboss.ide.eclipse.as.core.model.ServerProcessModel; import org.jboss.ide.eclipse.as.core.model.ServerProcessLog.ProcessLogEvent; import org.jboss.ide.eclipse.as.core.model.ServerProcessModel.ServerProcessModelEntity; +import org.jboss.ide.eclipse.as.core.server.IServerLogListener; +import org.jboss.ide.eclipse.as.core.server.JBossServer; +import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin; import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages; import org.jboss.ide.eclipse.as.ui.Messages; +import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; -public class JBossServerTableViewer extends TreeViewer { +public class JBossServerTableViewer extends TreeViewer implements IServerLogListener { - private ServerTableViewer serverViewer; + public JBossServerTableViewer(Tree tree) { + super(tree); + + setContentProvider(new ContentProviderDelegator()); + setLabelProvider(new LabelProviderDelegator()); + ServerProcessModel.getDefault().addLogListener(this); + + } - public JBossServerTableViewer(Tree tree, ServerTableViewer serverViewer) { - super(tree); - this.serverViewer = serverViewer; - addListeners(); - setContentProvider(new JBSContentProvider()); - setLabelProvider(new JBSLabelProvider()); + protected class LabelProviderDelegator extends LabelProvider { + public String getText(Object obj) { + if( obj instanceof JBossServer) { + JBossServer server = (JBossServer)obj; + String ret = server.getServer().getName(); + ret += " ("; + String home = server.getRuntimeConfiguration().getServerHome(); + ret += (home.length() > 30 ? home.substring(0,30) + "..." : home); + ret += ", " + server.getRuntimeConfiguration().getJbossConfiguration() + ")"; + return ret; + } + if( obj instanceof ServerViewProvider) { + return ((ServerViewProvider)obj).getName(); + } + + try { + return getParentViewProvider(obj).getDelegate().getLabelProvider().getText(obj); + } catch( Exception e) { + } + return "not parsable: " + obj.toString(); + } + public Image getImage(Object obj) { + if( obj instanceof JBossServer ) { + return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer()); } + try { + return getParentViewProvider(obj).getDelegate().getLabelProvider().getImage(obj); + } catch( Exception e) { + } + return null; + } + } + protected class ContentProviderDelegator implements ITreeContentProvider { + public ContentProviderDelegator() { + } - protected void addListeners() { - serverViewer.addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - Object current = getInput(); - Object selection = ((TreeSelection)event.getSelection()).getFirstElement(); - Object server = selection; - if( selection instanceof ModuleServer ) { - server = ((ModuleServer)selection).server; + public Object[] getElements(Object inputElement) { + return new Object[] { JBossServerCore.getServer((IServer)inputElement) }; } - if( getInput() != server ) - setInput(server); + public Object[] getChildren(Object parentElement) { + if( parentElement instanceof JBossServer) { + return JBossServerUIPlugin.getDefault().getEnabledViewProviders(); + } + if( parentElement instanceof ServerViewProvider) { + return ((ServerViewProvider)parentElement).getDelegate().getContentProvider().getChildren(parentElement); } - }); + Object[] o = null; + try { + o = getParentViewProvider(parentElement).getDelegate().getContentProvider().getChildren(parentElement); + } catch( Exception e) { + } + + return o == null ? new Object[0] : o; + } + + public Object getParent(Object element) { + return null; + } + + public boolean hasChildren(Object element) { + return getChildren(element).length > 0 ? true : false; + } + + public void dispose() { + } + + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getEnabledViewProviders(); + for( int i = 0; i < providers.length; i++ ) { + providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput, newInput); + } + } + + } + + public ServerViewProvider getParentViewProvider(Object o) { + ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getEnabledViewProviders(); + for( int i = 0; i < providers.length; i++ ) { + if( containsObject(providers[i], o)) { + return providers[i]; + } + } + return null; + } + + public boolean containsObject(ServerViewProvider provider, Object obj) { + Object parent = provider.getDelegate().getContentProvider().getParent(obj); + while( parent != null && !(parent instanceof ServerViewProvider)) { + parent = provider.getDelegate().getContentProvider().getParent(parent); + } + + if( parent instanceof ServerViewProvider ) + return true; + + return false; } + + protected class EventLogLabelProvider extends LabelProvider { public String getText(Object obj) { if( obj instanceof ProcessLogEvent ) { @@ -128,6 +216,15 @@ if( obj instanceof IModule ) { return ServerUICore.getLabelProvider().getText(obj); } + if( obj instanceof JBossServer) { + JBossServer server = (JBossServer)obj; + String ret = server.getServer().getName(); + ret += " ("; + String home = server.getRuntimeConfiguration().getServerHome(); + ret += (home.length() > 30 ? home.substring(0,30) + "..." : home); + ret += ", " + server.getRuntimeConfiguration().getJbossConfiguration() + ")"; + return ret; + } return obj.toString(); } public Image getImage(Object obj) { @@ -137,6 +234,9 @@ if( obj instanceof IModule ) { return ServerUICore.getLabelProvider().getImage(obj); } + if( obj instanceof JBossServer) { + return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer()); + } String imageKey = ISharedImages.IMG_OBJ_ELEMENT; return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey); } @@ -157,12 +257,12 @@ topLevelCategories = new String[list.size()]; - list.toArray(topLevelCategories); + //list.toArray(topLevelCategories); } public Object[] getElements(Object inputElement) { - return topLevelCategories; + return new Object[] { JBossServerCore.getServer((IServer)inputElement) }; } public void dispose() { @@ -176,6 +276,9 @@ } public Object[] getChildren(Object parentElement) { + if( parentElement instanceof JBossServer ) { + return topLevelCategories; + } if( parentElement.equals(Messages.ModulesCategory)) { IServer server = (IServer)getInput(); return server.getModules(); @@ -202,4 +305,47 @@ } } + + + + protected void fillJBContextMenu(Shell shell, IMenuManager menu) { + Action action1 = new Action() { + public void run() { + Display.getDefault().asyncExec(new Runnable() { + + public void run() { + refresh(); + } + + }); + } + + }; + action1.setText("refresh"); + + menu.add(action1); + } + + public void logChanged(ServerProcessModelEntity ent) { + final ServerProcessModelEntity e2 = ent; + + IServer input = getInput() instanceof IServer ? (IServer)getInput() : null; + if( input != null && input.getId().equals(ent.getServerID())) { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + try { + Object[] expanded = getExpandedElements(); + ISelection selected = getSelection(); + //viewer.setInput(ServerProcessModel.getDefault()); + refresh(); + setExpandedElements(expanded); + setSelection(selected); + } catch( Exception e) { + // do nothing + } + } + } ); + } + } + } 1.2 +161 -13 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerView.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- JBossServerView.java 20 Jun 2006 16:12:07 -0000 1.1 +++ JBossServerView.java 22 Jun 2006 20:54:10 -0000 1.2 @@ -21,28 +21,65 @@ */ package org.jboss.ide.eclipse.as.ui.views; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.TreeSelection; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; -import org.eclipse.swt.graphics.Color; import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.ui.IMemento; import org.eclipse.ui.IViewSite; import org.eclipse.ui.PartInitException; import org.eclipse.wst.server.ui.internal.ServerUIPlugin; +import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer; import org.eclipse.wst.server.ui.internal.view.servers.ServersView; +import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; public class JBossServerView extends ServersView { private static final String TAG_SASHFORM_HEIGHT = "sashformHeight"; - protected int[] rows; + private static final String TAG_SASHFORM_PROPERTIES = "sashformProperties"; + + + protected int[] sashRows; // For the sashform sashRows + protected int[] sashCols; // for the properties sashform + protected SashForm form; + protected SashForm propertiesForm; + protected JBossServerTableViewer jbViewer; protected Tree jbTreeTable; + protected TreeViewer propertiesViewer; + + + protected Action deleteModuleAction, republishModuleAction; + + public static JBossServerView instance; + public static JBossServerView getDefault() { + return instance; + } + + + public JBossServerView() { + super(); + instance = this; + } public void createPartControl(Composite parent) { @@ -51,16 +88,19 @@ addServerViewer(form); addSecondViewer(form); + addPropertyViewer(form); + form.setWeights(sashRows); + propertiesForm.setWeights(sashCols); - form.setWeights(rows); + addListeners(); + doMenuStuff(parent); } private void addServerViewer(Composite form) { Composite child1 = new Composite(form,SWT.NONE); child1.setLayout(new GridLayout()); super.createPartControl(child1); - //tableViewer.setContentProvider(new ServerContentProvider2()); } @@ -68,9 +108,104 @@ Composite child2 = new Composite(form,SWT.NONE); child2.setLayout(new FillLayout()); jbTreeTable = new Tree(child2, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - jbViewer = new JBossServerTableViewer(jbTreeTable, tableViewer); + jbViewer = new JBossServerTableViewer(jbTreeTable); + } + + private void addPropertyViewer(Composite form) { + propertiesForm = new SashForm(form, SWT.HORIZONTAL); + propertiesForm.setLayout(new FillLayout()); + + Composite c1 = new Composite(propertiesForm, SWT.NONE); + c1.setLayout(new FillLayout()); + Tree tTable = new Tree(c1, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE); + tTable.setHeaderVisible(true); + tTable.setLinesVisible(true); + tTable.setLayoutData(new GridData(GridData.FILL_BOTH)); + tTable.setFont(c1.getFont()); + + TreeColumn column = new TreeColumn(tTable, SWT.SINGLE); + column.setText("Property"); + column.setWidth(50); + + TreeColumn column2 = new TreeColumn(tTable, SWT.SINGLE); + column2.setText("Value"); + column2.setWidth(50); + + propertiesViewer = new TreeViewer(tTable); + + Composite c2 = new Composite(propertiesForm, SWT.NONE); + c2.setLayout(new FillLayout()); + Text t2 = new Text(c2, SWT.BORDER); + t2.setText("Box 2"); + } + + + + public void addListeners() { + + jbViewer.addSelectionChangedListener(new ISelectionChangedListener() { + public void selectionChanged(SelectionChangedEvent event) { + ISelection sel = event.getSelection(); + if( sel instanceof IStructuredSelection ) { + Object o = ((IStructuredSelection)sel).getFirstElement(); + if( o != null ) { + ServerViewProvider provider = jbViewer.getParentViewProvider(o); + if( provider != null ) { + int propertiesType = provider.getDelegate().selectedObjectViewType(o); + if( propertiesType == JBossServerViewExtension.PROPERTIES || + propertiesType == JBossServerViewExtension.PROPERTIES_AND_TEXT ) { + propertiesViewer.setContentProvider(provider.getDelegate().getPropertiesContentProvider()); + propertiesViewer.setLabelProvider(provider.getDelegate().getPropertiesLabelProvider()); + propertiesViewer.setInput(o); + propertiesViewer.refresh(); + } + } else { + propertiesViewer.setInput(null); + } } + } + } + + }); + + /* + * Handles the selection of the server viewer which is embedded in my sashform + */ + + tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { + public void selectionChanged(SelectionChangedEvent event) { + Object current = jbViewer.getInput(); + Object selection = ((TreeSelection)event.getSelection()).getFirstElement(); + Object server = selection; + if( selection instanceof ModuleServer ) { + server = ((ModuleServer)selection).server; + } + + if( selection == null ) return; + + if( jbViewer.getInput() != server ) { + jbViewer.setInput(server); + } + } + + }); + + + } + protected void doMenuStuff(Composite parent) { + MenuManager menuManager = new MenuManager("#PopupMenu"); + menuManager.setRemoveAllWhenShown(true); + final Shell shell = jbTreeTable.getShell(); + menuManager.addMenuListener(new IMenuListener() { + public void menuAboutToShow(IMenuManager mgr) { + jbViewer.fillJBContextMenu(shell, mgr); + } + }); + Menu menu = menuManager.createContextMenu(parent); + jbTreeTable.setMenu(menu); + + } /** @@ -80,24 +215,37 @@ super.init(site, memento); ServerUIPlugin.getPreferences().setShowOnActivity(false); int sum = 0; - rows = new int[2]; - for (int i = 0; i < 2; i++) { - rows[i] = (i == rows.length-1 ? 100-sum : 50); + sashRows = new int[3]; + for (int i = 0; i < sashRows.length; i++) { + sashRows[i] = (i == sashRows.length-1 ? 100-sum : 50); if (memento != null) { Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i); if (in != null && in.intValue() > 5) - rows[i] = in.intValue(); + sashRows[i] = in.intValue(); } - sum += rows[i]; + sum += sashRows[i]; } + + sashCols = new int[2]; + sashCols[0] = 100; + sashCols[1] = 0; + } public void saveState(IMemento memento) { int[] weights = form.getWeights(); - for (int i = 0; i < 2; i++) { + for (int i = 0; i < weights.length; i++) { if (weights[i] != 0) memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]); } + + weights = propertiesForm.getWeights(); + for( int i = 0; i < weights.length; i++ ) { + if (weights[i] != 0) + memento.putInteger(TAG_SASHFORM_PROPERTIES + i, weights[i]); + + } + } } \ No newline at end of file 1.1 date: 2006/06/22 20:54:10; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerViewExtension.java Index: JBossServerViewExtension.java =================================================================== package org.jboss.ide.eclipse.as.ui.views; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.widgets.Shell; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; public abstract class JBossServerViewExtension { protected ServerViewProvider provider; public static final int PROPERTIES = 1; public static final int TEXT = 2; public static final int PROPERTIES_AND_TEXT = 3; public void setViewProvider(ServerViewProvider provider) { this.provider = provider; } public abstract void fillJBContextMenu(Shell shell, IMenuManager menu); public abstract ITreeContentProvider getContentProvider(); public abstract LabelProvider getLabelProvider(); // Should return one of the three static fields public abstract int selectedObjectViewType(Object o); public abstract String getPropertiesText(Object o); public abstract ITreeContentProvider getPropertiesContentProvider(); public abstract ITableLabelProvider getPropertiesLabelProvider(); } |
From: Robert S. <ra...@gm...> - 2006-06-24 01:20:54
|
User: rawb Date: 06/06/23 21:20:51 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java JBossServerView.java Removed: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerViewExtension.java Log: Redesigned some of the model and all of the gui. It's teh <3 Revision Changes Path 1.3 +7 -189 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerTableViewer.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- JBossServerTableViewer.java 22 Jun 2006 20:54:10 -0000 1.2 +++ JBossServerTableViewer.java 24 Jun 2006 01:20:51 -0000 1.3 @@ -35,15 +35,13 @@ import org.jboss.ide.eclipse.as.ui.Messages; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; -public class JBossServerTableViewer extends TreeViewer implements IServerLogListener { +public class JBossServerTableViewer extends TreeViewer { public JBossServerTableViewer(Tree tree) { super(tree); setContentProvider(new ContentProviderDelegator()); setLabelProvider(new LabelProviderDelegator()); - ServerProcessModel.getDefault().addLogListener(this); - } @@ -53,10 +51,10 @@ if( obj instanceof JBossServer) { JBossServer server = (JBossServer)obj; String ret = server.getServer().getName(); - ret += " ("; - String home = server.getRuntimeConfiguration().getServerHome(); - ret += (home.length() > 30 ? home.substring(0,30) + "..." : home); - ret += ", " + server.getRuntimeConfiguration().getJbossConfiguration() + ")"; +// ret += " ("; +// String home = server.getRuntimeConfiguration().getServerHome(); +// ret += (home.length() > 30 ? home.substring(0,30) + "..." : home); +// ret += ", " + server.getRuntimeConfiguration().getJbossConfiguration() + ")"; return ret; } if( obj instanceof ServerViewProvider) { @@ -67,7 +65,7 @@ return getParentViewProvider(obj).getDelegate().getLabelProvider().getText(obj); } catch( Exception e) { } - return "not parsable: " + obj.toString(); + return obj.toString(); } public Image getImage(Object obj) { if( obj instanceof JBossServer ) { @@ -150,164 +148,6 @@ - - protected class EventLogLabelProvider extends LabelProvider { - public String getText(Object obj) { - 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 obj.toString(); - } - public Image getImage(Object obj) { - ProcessLogEvent event = (ProcessLogEvent)obj; - IServer server = event.getRoot().getServer(); - IServerType serverType = server.getServerType(); - - if( obj instanceof ProcessLogEvent ) { - if( event.getEventType() == ProcessLogEvent.SERVER_STARTING) { - return getStateImage(serverType, IServer.STATE_STARTING, server.getMode()); - } - if( event.getEventType() == ProcessLogEvent.SERVER_STOPPING) { - return getStateImage(serverType, IServer.STATE_STOPPING, server.getMode()); - } - if( event.getEventType() == ProcessLogEvent.SERVER_UP) { - return getStateImage(serverType, IServer.STATE_STARTED, server.getMode()); - } - if( event.getEventType() == ProcessLogEvent.SERVER_DOWN) { - return getStateImage(serverType, IServer.STATE_STOPPED, server.getMode()); - } - if( event.getEventType() == ProcessLogEvent.SERVER_CONSOLE) { - return JBossServerUISharedImages.getImage(JBossServerUISharedImages.CONSOLE_IMAGE); - } - if( event.getEventType() == ProcessLogEvent.TWIDDLE) { - return JBossServerUISharedImages.getImage(JBossServerUISharedImages.TWIDDLE_IMAGE); - } - if( event.getEventType() == ProcessLogEvent.SERVER_PUBLISH) { - return JBossServerUISharedImages.getImage(JBossServerUISharedImages.PUBLISH_IMAGE); - } - if( event.getEventType() == ProcessLogEvent.SERVER_UNPUBLISH) { - return JBossServerUISharedImages.getImage(JBossServerUISharedImages.UNPUBLISH_IMAGE); - } - } - return null; - } - - protected Image getStateImage(IServerType serverType, int state, String mode) { - return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode, 0); - } - - } - - protected class JBSLabelProvider extends LabelProvider { - private EventLogLabelProvider logDelegate; - private ServerTableLabelProvider moduleDelegate; - - public JBSLabelProvider() { - logDelegate = new EventLogLabelProvider(); - moduleDelegate = new ServerTableLabelProvider(); - } - - public String getText(Object obj) { - if( obj instanceof ProcessLogEvent) { - return logDelegate.getText(obj); - } - if( obj instanceof IModule ) { - return ServerUICore.getLabelProvider().getText(obj); - } - if( obj instanceof JBossServer) { - JBossServer server = (JBossServer)obj; - String ret = server.getServer().getName(); - ret += " ("; - String home = server.getRuntimeConfiguration().getServerHome(); - ret += (home.length() > 30 ? home.substring(0,30) + "..." : home); - ret += ", " + server.getRuntimeConfiguration().getJbossConfiguration() + ")"; - return ret; - } - return obj.toString(); - } - public Image getImage(Object obj) { - if( obj instanceof ProcessLogEvent) { - return logDelegate.getImage(obj); - } - if( obj instanceof IModule ) { - return ServerUICore.getLabelProvider().getImage(obj); - } - if( obj instanceof JBossServer) { - return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer()); - } - String imageKey = ISharedImages.IMG_OBJ_ELEMENT; - return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey); - } - - } - - protected class JBSContentProvider implements IStructuredContentProvider, ITreeContentProvider { - - protected String[] topLevelCategories; - public JBSContentProvider() { - initializeCategories(); - } - protected void initializeCategories() { - ArrayList list = new ArrayList(); - - list.add(Messages.ModulesCategory); - list.add(Messages.EventLogCategory); - - - topLevelCategories = new String[list.size()]; - //list.toArray(topLevelCategories); - } - - - public Object[] getElements(Object inputElement) { - return new Object[] { JBossServerCore.getServer((IServer)inputElement) }; - } - - public void dispose() { - // TODO Auto-generated method stub - - } - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - // TODO Auto-generated method stub - - } - - public Object[] getChildren(Object parentElement) { - if( parentElement instanceof JBossServer ) { - return topLevelCategories; - } - if( parentElement.equals(Messages.ModulesCategory)) { - IServer server = (IServer)getInput(); - return server.getModules(); - } - if( parentElement.equals(Messages.EventLogCategory)) { - IServer server = (IServer)getInput(); - ServerProcessModelEntity ent = ServerProcessModel.getDefault().getModel(server.getId()); - return ent.getEventLog().getChildren(); - } - if( parentElement instanceof ProcessLogEvent ) { - return ((ProcessLogEvent)parentElement).getChildren(); - } - - return new Object[0]; - } - - public Object getParent(Object element) { - // TODO Auto-generated method stub - return null; - } - - public boolean hasChildren(Object element) { - return getChildren(element).length > 0 ? true : false; - } - - } - - - protected void fillJBContextMenu(Shell shell, IMenuManager menu) { Action action1 = new Action() { public void run() { @@ -321,31 +161,9 @@ } }; - action1.setText("refresh"); + action1.setText("refresh viewer"); menu.add(action1); } - public void logChanged(ServerProcessModelEntity ent) { - final ServerProcessModelEntity e2 = ent; - - IServer input = getInput() instanceof IServer ? (IServer)getInput() : null; - if( input != null && input.getId().equals(ent.getServerID())) { - Display.getDefault().asyncExec(new Runnable() { - public void run() { - try { - Object[] expanded = getExpandedElements(); - ISelection selected = getSelection(); - //viewer.setInput(ServerProcessModel.getDefault()); - refresh(); - setExpandedElements(expanded); - setSelection(selected); - } catch( Exception e) { - // do nothing - } - } - } ); - } - } - } 1.3 +260 -31 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerView.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- JBossServerView.java 22 Jun 2006 20:54:10 -0000 1.2 +++ JBossServerView.java 24 Jun 2006 01:20:51 -0000 1.3 @@ -21,10 +21,13 @@ */ package org.jboss.ide.eclipse.as.ui.views; +import java.util.Properties; + import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; @@ -37,6 +40,7 @@ import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; @@ -47,18 +51,26 @@ import org.eclipse.ui.PartInitException; import org.eclipse.wst.server.ui.internal.ServerUIPlugin; import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer; +import org.eclipse.wst.server.ui.internal.view.servers.ServerTableViewer; import org.eclipse.wst.server.ui.internal.view.servers.ServersView; +import org.jboss.ide.eclipse.as.core.server.JBossServer; +import org.jboss.ide.eclipse.as.core.util.ASDebug; +import org.jboss.ide.eclipse.as.ui.Messages; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; +import org.jboss.ide.eclipse.as.ui.viewproviders.ISimplePropertiesHolder; +import org.jboss.ide.eclipse.as.ui.viewproviders.JBossServerViewExtension; +import org.jboss.ide.eclipse.as.ui.viewproviders.SimplePropertiesContentProvider; public class JBossServerView extends ServersView { private static final String TAG_SASHFORM_HEIGHT = "sashformHeight"; private static final String TAG_SASHFORM_PROPERTIES = "sashformProperties"; - + private static final String PROPERTIES_COLUMNS = "propertiesColumns"; protected int[] sashRows; // For the sashform sashRows protected int[] sashCols; // for the properties sashform + protected int[] propertyCols; // For the property columns protected SashForm form; protected SashForm propertiesForm; @@ -66,9 +78,13 @@ protected JBossServerTableViewer jbViewer; protected Tree jbTreeTable; protected TreeViewer propertiesViewer; + protected Text propertiesText; + + + protected SimplePropertiesContentProvider topLevelPropertiesProvider; - protected Action deleteModuleAction, republishModuleAction; + protected Action hidePropertiesAction, hideTextAction, hidePropertiesAndTextAction; public static JBossServerView instance; public static JBossServerView getDefault() { @@ -83,7 +99,7 @@ public void createPartControl(Composite parent) { - form = new SashForm(parent, SWT.VERTICAL); + form = new SashForm(parent, SWT.HORIZONTAL); form.setLayout(new FillLayout()); addServerViewer(form); @@ -91,9 +107,9 @@ addPropertyViewer(form); form.setWeights(sashRows); propertiesForm.setWeights(sashCols); - + createActions(); addListeners(); - + topLevelPropertiesProvider = new SimplePropertiesContentProvider(new TopLevelProperties()); doMenuStuff(parent); } @@ -124,51 +140,113 @@ tTable.setFont(c1.getFont()); TreeColumn column = new TreeColumn(tTable, SWT.SINGLE); - column.setText("Property"); - column.setWidth(50); + column.setText(Messages.property); + column.setWidth(propertyCols[0]); TreeColumn column2 = new TreeColumn(tTable, SWT.SINGLE); - column2.setText("Value"); - column2.setWidth(50); + column2.setText(Messages.value); + column2.setWidth(propertyCols[1]); propertiesViewer = new TreeViewer(tTable); Composite c2 = new Composite(propertiesForm, SWT.NONE); c2.setLayout(new FillLayout()); - Text t2 = new Text(c2, SWT.BORDER); - t2.setText("Box 2"); + propertiesText = new Text(c2, SWT.BORDER); } + public void createActions() { + hidePropertiesAction = new Action() { + public void run() { + sashCols = propertiesForm.getWeights(); + if( sashCols[1] == 0 ) { + hidePropertiesAndText(); + } else { + sashCols[1] = 100; + sashCols[0] = 0; + propertiesForm.setWeights(sashCols); + } + } + }; + hidePropertiesAction.setText(Messages.HidePropertiesAction); + + hideTextAction = new Action() { + public void run() { + sashCols = propertiesForm.getWeights(); + if( sashCols[0] == 0 ) { + hidePropertiesAndText(); + } else { + sashCols[0] = 100; + sashCols[1] = 0; + propertiesForm.setWeights(sashCols); + } + } + }; + hideTextAction.setText(Messages.HideTextAction); + + hidePropertiesAndTextAction = new Action() { + public void run() { + hidePropertiesAndText(); + } + }; + hidePropertiesAndTextAction.setText(Messages.HideLowerFrameAction); + } + + public void hidePropertiesAndText() { + sashRows = form.getWeights(); + sashRows[2] = 0; + form.setWeights(sashRows); + } + + public void refreshJBTree(ServerViewProvider provider) { + ASDebug.p("Refreshing the tree", this); + final ServerViewProvider provider2 = provider; + Display.getDefault().asyncExec(new Runnable() { + public void run() { + try { + JBossServerView.this.jbViewer.refresh(provider2); + ISelection sel = JBossServerView.this.jbViewer.getSelection(); + JBossServerView.this.jbViewer.setSelection(sel); + } catch (Exception e) { + // ignore + } + } + }); + } public void addListeners() { jbViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { + + // If the properties aren't showing, dont bother + if( form.getWeights()[2] == 0 ) + return; + ISelection sel = event.getSelection(); if( sel instanceof IStructuredSelection ) { - Object o = ((IStructuredSelection)sel).getFirstElement(); - if( o != null ) { - ServerViewProvider provider = jbViewer.getParentViewProvider(o); + Object selected = ((IStructuredSelection)sel).getFirstElement(); + if( selected != null ) { + ServerViewProvider provider = jbViewer.getParentViewProvider(selected); if( provider != null ) { - int propertiesType = provider.getDelegate().selectedObjectViewType(o); - if( propertiesType == JBossServerViewExtension.PROPERTIES || - propertiesType == JBossServerViewExtension.PROPERTIES_AND_TEXT ) { - propertiesViewer.setContentProvider(provider.getDelegate().getPropertiesContentProvider()); - propertiesViewer.setLabelProvider(provider.getDelegate().getPropertiesLabelProvider()); - propertiesViewer.setInput(o); - propertiesViewer.refresh(); - } + // We have a provider (extension) and a selected object. + // Maintain the properties / text boxes. + updatePropertiesTextViewers(provider, selected); + } else if( selected instanceof JBossServer || selected instanceof ServerViewProvider ){ + updatePropertiesTopLevel(selected); } else { - propertiesViewer.setInput(null); + clearPropertiesTextViewers(); } + } else { + clearPropertiesTextViewers(); } - + propertiesForm.setWeights(sashCols); } } }); + /* * Handles the selection of the server viewer which is embedded in my sashform */ @@ -184,13 +262,64 @@ if( selection == null ) return; - if( jbViewer.getInput() != server ) { + //if( jbViewer.getInput() != server ) { jbViewer.setInput(server); - } + //} } }); + } + public void clearPropertiesTextViewers() { + try { + propertiesViewer.setInput(null); + } catch( Exception e) {} + + propertiesText.setText(""); + sashCols[0] = 100; + sashCols[1] = 0; + } + + public void updatePropertiesTextViewers(ServerViewProvider provider, Object selected) { + // Surround the entire method + try { + + int propertiesType = provider.getDelegate().selectedObjectViewType(selected); + if( propertiesType == JBossServerViewExtension.PROPERTIES || + propertiesType == JBossServerViewExtension.PROPERTIES_AND_TEXT ) { + + propertiesViewer.setContentProvider(provider.getDelegate().getPropertiesContentProvider()); + propertiesViewer.setLabelProvider(provider.getDelegate().getPropertiesLabelProvider()); + propertiesViewer.setInput(selected); + propertiesViewer.refresh(); + + // set weights + if( propertiesType == JBossServerViewExtension.PROPERTIES) { + sashCols[0] = 100; + sashCols[1] = 0; + } else { + sashCols[0] = 50; + sashCols[1] = 50; + } + } else { + propertiesText.setText(provider.getDelegate().getPropertiesText(selected)); + sashCols[0] = 0; + sashCols[1] = 100; + } + + } catch( Exception e ) { + clearPropertiesTextViewers(); + } + + } + + public void updatePropertiesTopLevel(Object selected) { + propertiesViewer.setContentProvider(topLevelPropertiesProvider); + propertiesViewer.setLabelProvider(topLevelPropertiesProvider); + propertiesViewer.setInput(selected); + propertiesViewer.refresh(); + sashCols[0] = 100; + sashCols[1] = 0; } protected void doMenuStuff(Composite parent) { @@ -199,17 +328,50 @@ final Shell shell = jbTreeTable.getShell(); menuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager mgr) { + ISelection sel = jbViewer.getSelection(); + if( sel instanceof IStructuredSelection ) { + Object selected = ((IStructuredSelection)sel).getFirstElement(); + if( selected != null ) { + ServerViewProvider provider = jbViewer.getParentViewProvider(selected); + if( provider != null ) + provider.getDelegate().fillContextMenu(shell, mgr, selected); + } + } + mgr.add(new Separator()); jbViewer.fillJBContextMenu(shell, mgr); } }); Menu menu = menuManager.createContextMenu(parent); jbTreeTable.setMenu(menu); - } + MenuManager menuManager2 = new MenuManager("#PopupMenu"); + menuManager2.setRemoveAllWhenShown(true); + final Shell shell2 = propertiesForm.getShell(); + menuManager2.addMenuListener(new IMenuListener() { + public void menuAboutToShow(IMenuManager mgr) { + fillPropertiesContextMenu(shell2, mgr); + } + }); + Menu menu2 = menuManager2.createContextMenu(parent); + propertiesViewer.getTree().setMenu(menu2); + propertiesText.setMenu(menu2); + } + + public void fillPropertiesContextMenu(Shell shell, IMenuManager mgr) { + sashCols = propertiesForm.getWeights(); + if( sashCols[0] != 0 ) + mgr.add(hidePropertiesAction); + if( sashCols[1] != 0 ) + mgr.add(hideTextAction); + + // If only one of the two are present, do not show the 'hide both' action + if( !(sashCols[0] != 0 && sashCols[1] == 0 || sashCols[1] != 0 && sashCols[0] == 0 )) + mgr.add(hidePropertiesAndTextAction); + } /** - * Save some state + * Save / Load some state (width / height of boxes) */ public void init(IViewSite site, IMemento memento) throws PartInitException { super.init(site, memento); @@ -230,6 +392,16 @@ sashCols[0] = 100; sashCols[1] = 0; + + propertyCols = new int[2]; + for (int i = 0; i < propertyCols.length; i++) { + propertyCols[i] = 100; + if (memento != null) { + Integer in = memento.getInteger(PROPERTIES_COLUMNS + i); + if (in != null && in.intValue() > 5) + propertyCols[i] = in.intValue(); + } + } } public void saveState(IMemento memento) { @@ -243,9 +415,66 @@ for( int i = 0; i < weights.length; i++ ) { if (weights[i] != 0) memento.putInteger(TAG_SASHFORM_PROPERTIES + i, weights[i]); + } + Tree propTree = propertiesViewer.getTree(); + TreeColumn[] columns = propTree.getColumns(); + for( int i = 0; i < columns.length; i++ ) { + memento.putInteger(PROPERTIES_COLUMNS + i, columns[i].getWidth()); } } + + + /** + * Properties for the top level elements + * (a server or a category / extension point + * @author rstryker + * + */ + class TopLevelProperties implements ISimplePropertiesHolder { + public Properties getProperties(Object selected) { + Properties ret = new Properties(); + if( selected instanceof ServerViewProvider ) { + ServerViewProvider provider = (ServerViewProvider)selected; + ret.setProperty(Messages.ExtensionID, provider.getId()); + ret.setProperty(Messages.ExtensionName, provider.getName()); + ret.setProperty(Messages.ExtensionDescription, provider.getDescription()); + ret.setProperty(Messages.ExtensionProviderClass, provider.getDelegateName()); + } + + if( selected instanceof JBossServer) { + JBossServer server = (JBossServer)selected; + String home = server.getRuntimeConfiguration().getServerHome(); + + ret.setProperty(Messages.ServerRuntimeVersion, server.getJBossRuntime().getVersionDelegate().getId()); + ret.setProperty(Messages.ServerHome, home); + ret.setProperty(Messages.ServerConfigurationName, server.getRuntimeConfiguration().getJbossConfiguration()); + ret.setProperty(Messages.ServerDeployDir, + server.getRuntimeConfiguration().getDeployDirectory().replace(home, "(home)")); + } + return ret; + } + + + public String[] getPropertyKeys(Object selected) { + if( selected instanceof ServerViewProvider) { + return new String[] { + Messages.ExtensionName, Messages.ExtensionDescription, + Messages.ExtensionID, Messages.ExtensionProviderClass + }; + + } + if( selected instanceof JBossServer ) { + return new String[] { + Messages.ServerRuntimeVersion, Messages.ServerHome, + Messages.ServerConfigurationName, Messages.ServerDeployDir, + }; + } + return new String[] {}; + } + } + + } \ No newline at end of file |
From: Robert S. <ra...@gm...> - 2006-06-24 01:23:34
|
User: rawb Date: 06/06/23 21:23:33 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerView.java Log: Revision Changes Path 1.4 +1 -1 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerView.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- JBossServerView.java 24 Jun 2006 01:20:51 -0000 1.3 +++ JBossServerView.java 24 Jun 2006 01:23:33 -0000 1.4 @@ -99,7 +99,7 @@ public void createPartControl(Composite parent) { - form = new SashForm(parent, SWT.HORIZONTAL); + form = new SashForm(parent, SWT.VERTICAL); form.setLayout(new FillLayout()); addServerViewer(form); |
From: Robert S. <ra...@gm...> - 2006-06-27 07:07:34
|
User: rawb Date: 06/06/27 03:07:30 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java JBossServerView.java Log: Pulled out the properties section to work in the property's view instead. Added some default property sheet pages for implementers to use. Ensured view extensions' icons worked in the label provider. Ensured proper calls of dispose() are made. Lots of other small things. Revision Changes Path 1.4 +233 -49 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerTableViewer.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- JBossServerTableViewer.java 24 Jun 2006 01:20:51 -0000 1.3 +++ JBossServerTableViewer.java 27 Jun 2006 07:07:30 -0000 1.4 @@ -1,69 +1,95 @@ package org.jboss.ide.eclipse.as.ui.views; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; +import java.util.Properties; import org.eclipse.jface.action.Action; 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.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; -import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.PlatformUI; -import org.eclipse.wst.server.core.IModule; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.PageBook; +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.ServerUICore; -import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager; -import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider; import org.jboss.ide.eclipse.as.core.JBossServerCore; -import org.jboss.ide.eclipse.as.core.model.ServerProcessModel; -import org.jboss.ide.eclipse.as.core.model.ServerProcessLog.ProcessLogEvent; -import org.jboss.ide.eclipse.as.core.model.ServerProcessModel.ServerProcessModelEntity; -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.util.ASDebug; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin; -import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages; import org.jboss.ide.eclipse.as.ui.Messages; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; +import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory; +import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.ISimplePropertiesHolder; +import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.SimplePropertiesPropertySheetPage; public class JBossServerTableViewer extends TreeViewer { + protected TableViewerPropertySheet propertySheet; + public JBossServerTableViewer(Tree tree) { super(tree); - setContentProvider(new ContentProviderDelegator()); setLabelProvider(new LabelProviderDelegator()); + //topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new TopLevelProperties()); + propertySheet = new TableViewerPropertySheet(); + } + + public static class ContentWrapper { + private Object o; + private ServerViewProvider provider; + + public ContentWrapper(Object o, ServerViewProvider provider) { + this.o = o; + this.provider = provider; } + public Object getElement() { + return o; + } + + public ServerViewProvider getProvider() { + return provider; + } + + public boolean equals(Object other) { + if( other == null ) return false; + if( other instanceof ContentWrapper ) { + return ((ContentWrapper)other).getElement().equals(o); + } + return false; + } + public int hashCode() { + return o.hashCode(); + } + } protected class LabelProviderDelegator extends LabelProvider { public String getText(Object obj) { if( obj instanceof JBossServer) { JBossServer server = (JBossServer)obj; String ret = server.getServer().getName(); -// ret += " ("; -// String home = server.getRuntimeConfiguration().getServerHome(); -// ret += (home.length() > 30 ? home.substring(0,30) + "..." : home); -// ret += ", " + server.getRuntimeConfiguration().getJbossConfiguration() + ")"; return ret; } if( obj instanceof ServerViewProvider) { return ((ServerViewProvider)obj).getName(); } - try { - return getParentViewProvider(obj).getDelegate().getLabelProvider().getText(obj); - } catch( Exception e) { + if( obj instanceof ContentWrapper ) { + ContentWrapper wrapper = (ContentWrapper)obj; + return wrapper.getProvider().getDelegate().getLabelProvider().getText(wrapper.getElement()); } return obj.toString(); } @@ -71,10 +97,15 @@ if( obj instanceof JBossServer ) { return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer()); } - try { - return getParentViewProvider(obj).getDelegate().getLabelProvider().getImage(obj); - } catch( Exception e) { + if( obj instanceof ServerViewProvider ) { + return ((ServerViewProvider)obj).getImage(); + } + + if( obj instanceof ContentWrapper ) { + Object object2 = ((ContentWrapper)obj).getElement(); + return ((ContentWrapper)obj).getProvider().getDelegate().getLabelProvider().getImage(object2); } + return null; } } @@ -83,6 +114,14 @@ public ContentProviderDelegator() { } + public ContentWrapper[] wrap( Object[] elements, ServerViewProvider provider ) { + ContentWrapper[] wrappers = new ContentWrapper[elements.length]; + for( int i = 0; i < wrappers.length; i++ ) { + wrappers[i] = new ContentWrapper(elements[i], provider); + } + return wrappers; + } + public Object[] getElements(Object inputElement) { return new Object[] { JBossServerCore.getServer((IServer)inputElement) }; } @@ -92,16 +131,23 @@ return JBossServerUIPlugin.getDefault().getEnabledViewProviders(); } if( parentElement instanceof ServerViewProvider) { - return ((ServerViewProvider)parentElement).getDelegate().getContentProvider().getChildren(parentElement); + Object[] ret = ((ServerViewProvider)parentElement).getDelegate().getContentProvider().getChildren(parentElement); + return wrap(ret, ((ServerViewProvider)parentElement)); } + if( parentElement instanceof ContentWrapper ) { + ContentWrapper parentWrapper = (ContentWrapper)parentElement; Object[] o = null; try { - o = getParentViewProvider(parentElement).getDelegate().getContentProvider().getChildren(parentElement); + o = parentWrapper.getProvider().getDelegate().getContentProvider().getChildren(parentWrapper.getElement()); } catch( Exception e) { } + if( o == null ) + return new Object[0]; + return wrap(o, parentWrapper.getProvider()); + } - return o == null ? new Object[0] : o; + return new Object[0]; } public Object getParent(Object element) { @@ -124,29 +170,38 @@ } + public Object getRawElement(Object o) { + if( o instanceof ContentWrapper ) + return ((ContentWrapper)o).getElement(); + return o; + } + public ServerViewProvider getParentViewProvider(Object o) { - ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getEnabledViewProviders(); - for( int i = 0; i < providers.length; i++ ) { - if( containsObject(providers[i], o)) { - return providers[i]; + if( o instanceof ContentWrapper ) + return ((ContentWrapper)o).getProvider(); + return null; } + + public Object getSelectedElement() { + ISelection sel = getSelection(); + if( sel instanceof IStructuredSelection ) { + return ((IStructuredSelection)sel).getFirstElement(); } return null; } - public boolean containsObject(ServerViewProvider provider, Object obj) { - Object parent = provider.getDelegate().getContentProvider().getParent(obj); - while( parent != null && !(parent instanceof ServerViewProvider)) { - parent = provider.getDelegate().getContentProvider().getParent(parent); + protected void fillSelectedContextMenu(Shell shell, IMenuManager mgr) { + ISelection sel = getSelection(); + if( sel instanceof IStructuredSelection ) { + Object selected = ((IStructuredSelection)sel).getFirstElement(); + if( selected != null ) { + ServerViewProvider provider = getParentViewProvider(selected); + if( provider != null ) + provider.getDelegate().fillContextMenu(shell, mgr, getRawElement(selected)); } - - if( parent instanceof ServerViewProvider ) - return true; - - return false; } - + } protected void fillJBContextMenu(Shell shell, IMenuManager menu) { Action action1 = new Action() { @@ -166,4 +221,133 @@ menu.add(action1); } + + public IPropertySheetPage getPropertySheet() { + return propertySheet; + } + + public class TableViewerPropertySheet implements IPropertySheetPage { + + private PageBook book; + private ArrayList addedControls = new ArrayList(); + private SimplePropertiesPropertySheetPage topLevelPropertiesPage; + + public void createControl(Composite parent) { + topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new TopLevelProperties()); + book = new PageBook(parent, SWT.NONE); + topLevelPropertiesPage.createControl(book); + book.showPage(topLevelPropertiesPage.getControl()); + } + + public void dispose() { + } + + public Control getControl() { + return book; + } + + public void setActionBars(IActionBars actionBars) { + } + + public void setFocus() { + } + + public void selectionChanged(IWorkbenchPart part, ISelection sel) { + Object selected = getSelectedObject(sel); + if( selected != null ) { + + IPropertySheetPage page = null; + if( selected instanceof ContentWrapper ) { + page = getDelegatePage((ContentWrapper)selected); + } + + if( page == null ) { + page = topLevelPropertiesPage; + } + page.selectionChanged(part, sel); + book.showPage(page.getControl()); + } + } + private IPropertySheetPage getDelegatePage(ContentWrapper wrapper) { + ServerViewProvider provider = wrapper.getProvider(); + IPropertySheetPage returnSheet = null; + returnSheet = provider.getDelegate().getPropertySheetPage(); + if( !addedControls.contains(provider)) { + returnSheet.createControl(book); + addedControls.add(provider); + } + return returnSheet; + } + + public Object getSelectedObject(ISelection sel) { + if( sel instanceof IStructuredSelection ) { + IStructuredSelection selection = (IStructuredSelection)sel; + Object selected = selection.getFirstElement(); + return selected; + } + return null; + } + + } + /** + * Properties for the top level elements + * (a server or a category / extension point + * @author rstryker + * + */ + class TopLevelProperties implements ISimplePropertiesHolder { + public Properties getProperties(Object selected) { + Properties ret = new Properties(); + if( selected instanceof ServerViewProvider ) { + ServerViewProvider provider = (ServerViewProvider)selected; + ret.setProperty(Messages.ExtensionID, provider.getId()); + ret.setProperty(Messages.ExtensionName, provider.getName()); + ret.setProperty(Messages.ExtensionDescription, provider.getDescription()); + ret.setProperty(Messages.ExtensionProviderClass, provider.getDelegateName()); + } + + if( selected instanceof JBossServer) { + JBossServer server = (JBossServer)selected; + String home = server.getRuntimeConfiguration().getServerHome(); + + ret.setProperty(Messages.ServerRuntimeVersion, server.getJBossRuntime().getVersionDelegate().getId()); + ret.setProperty(Messages.ServerHome, home); + ret.setProperty(Messages.ServerConfigurationName, server.getRuntimeConfiguration().getJbossConfiguration()); + ret.setProperty(Messages.ServerDeployDir, + server.getRuntimeConfiguration().getDeployDirectory().replace(home, "(home)")); + } + return ret; + } + + + public String[] getPropertyKeys(Object selected) { + if( selected instanceof ServerViewProvider) { + return new String[] { + Messages.ExtensionName, Messages.ExtensionDescription, + Messages.ExtensionID, Messages.ExtensionProviderClass + }; + + } + if( selected instanceof JBossServer ) { + return new String[] { + Messages.ServerRuntimeVersion, Messages.ServerHome, + Messages.ServerConfigurationName, Messages.ServerDeployDir, + }; + } + return new String[] {}; + } + } + + public void dispose() { + ASDebug.p("Disposing", this); + + // The Loner + propertySheet.dispose(); + + ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getAllServerViewProviders(); + for( int i = 0; i < providers.length; i++ ) { + providers[i].dispose(); + } + } + } 1.5 +60 -293 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerView.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- JBossServerView.java 24 Jun 2006 01:23:33 -0000 1.4 +++ JBossServerView.java 27 Jun 2006 07:07:30 -0000 1.5 @@ -21,70 +21,52 @@ */ package org.jboss.ide.eclipse.as.ui.views; -import java.util.Properties; - -import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; -import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TreeSelection; -import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; -import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.ui.IMemento; import org.eclipse.ui.IViewSite; import org.eclipse.ui.PartInitException; +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.wst.server.core.IServer; import org.eclipse.wst.server.ui.internal.ServerUIPlugin; import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer; -import org.eclipse.wst.server.ui.internal.view.servers.ServerTableViewer; import org.eclipse.wst.server.ui.internal.view.servers.ServersView; -import org.jboss.ide.eclipse.as.core.server.JBossServer; -import org.jboss.ide.eclipse.as.core.util.ASDebug; -import org.jboss.ide.eclipse.as.ui.Messages; +import org.jboss.ide.eclipse.as.core.JBossServerCore; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; -import org.jboss.ide.eclipse.as.ui.viewproviders.ISimplePropertiesHolder; -import org.jboss.ide.eclipse.as.ui.viewproviders.JBossServerViewExtension; -import org.jboss.ide.eclipse.as.ui.viewproviders.SimplePropertiesContentProvider; +import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.JBossServersViewPropertySheetPage; public class JBossServerView extends ServersView { private static final String TAG_SASHFORM_HEIGHT = "sashformHeight"; - private static final String TAG_SASHFORM_PROPERTIES = "sashformProperties"; - private static final String PROPERTIES_COLUMNS = "propertiesColumns"; protected int[] sashRows; // For the sashform sashRows - protected int[] sashCols; // for the properties sashform - protected int[] propertyCols; // For the property columns protected SashForm form; - protected SashForm propertiesForm; protected JBossServerTableViewer jbViewer; protected Tree jbTreeTable; - protected TreeViewer propertiesViewer; - protected Text propertiesText; - - protected SimplePropertiesContentProvider topLevelPropertiesProvider; + protected JBossServersViewPropertySheetPage propertyPage; - protected Action hidePropertiesAction, hideTextAction, hidePropertiesAndTextAction; public static JBossServerView instance; public static JBossServerView getDefault() { @@ -104,12 +86,9 @@ addServerViewer(form); addSecondViewer(form); - addPropertyViewer(form); form.setWeights(sashRows); - propertiesForm.setWeights(sashCols); createActions(); addListeners(); - topLevelPropertiesProvider = new SimplePropertiesContentProvider(new TopLevelProperties()); doMenuStuff(parent); } @@ -118,94 +97,64 @@ child1.setLayout(new GridLayout()); super.createPartControl(child1); + tableViewer.setContentProvider(new TrimmedServerContentProvider()); } - private void addSecondViewer(Composite form) { - Composite child2 = new Composite(form,SWT.NONE); - child2.setLayout(new FillLayout()); - jbTreeTable = new Tree(child2, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - jbViewer = new JBossServerTableViewer(jbTreeTable); + /** + * Only shows the servers in the top part of the sashform + * @author rstryker + * + */ + public class TrimmedServerContentProvider implements IStructuredContentProvider, ITreeContentProvider { + public Object[] getElements(Object element) { + return JBossServerCore.getIServerJBossServers(); } - private void addPropertyViewer(Composite form) { - propertiesForm = new SashForm(form, SWT.HORIZONTAL); - propertiesForm.setLayout(new FillLayout()); - - Composite c1 = new Composite(propertiesForm, SWT.NONE); - c1.setLayout(new FillLayout()); - Tree tTable = new Tree(c1, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE); - tTable.setHeaderVisible(true); - tTable.setLinesVisible(true); - tTable.setLayoutData(new GridData(GridData.FILL_BOTH)); - tTable.setFont(c1.getFont()); - - TreeColumn column = new TreeColumn(tTable, SWT.SINGLE); - column.setText(Messages.property); - column.setWidth(propertyCols[0]); - - TreeColumn column2 = new TreeColumn(tTable, SWT.SINGLE); - column2.setText(Messages.value); - column2.setWidth(propertyCols[1]); - - propertiesViewer = new TreeViewer(tTable); - - Composite c2 = new Composite(propertiesForm, SWT.NONE); - c2.setLayout(new FillLayout()); - propertiesText = new Text(c2, SWT.BORDER); + public void inputChanged(Viewer theViewer, Object oldInput, Object newInput) { + // do nothing } - public void createActions() { - hidePropertiesAction = new Action() { - public void run() { - sashCols = propertiesForm.getWeights(); - if( sashCols[1] == 0 ) { - hidePropertiesAndText(); - } else { - sashCols[1] = 100; - sashCols[0] = 0; - propertiesForm.setWeights(sashCols); + public void dispose() { + // do nothing } + + public Object[] getChildren(Object element) { + return new Object[0]; } - }; - hidePropertiesAction.setText(Messages.HidePropertiesAction); - hideTextAction = new Action() { - public void run() { - sashCols = propertiesForm.getWeights(); - if( sashCols[0] == 0 ) { - hidePropertiesAndText(); - } else { - sashCols[0] = 100; - sashCols[1] = 0; - propertiesForm.setWeights(sashCols); + public Object getParent(Object element) { + return null; + } + + public boolean hasChildren(Object element) { + return false; } } - }; - hideTextAction.setText(Messages.HideTextAction); - hidePropertiesAndTextAction = new Action() { - public void run() { - hidePropertiesAndText(); + private void addSecondViewer(Composite form) { + Composite child2 = new Composite(form,SWT.NONE); + child2.setLayout(new FillLayout()); + jbTreeTable = new Tree(child2, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); + jbViewer = new JBossServerTableViewer(jbTreeTable); + getSite().setSelectionProvider(jbViewer); } - }; - hidePropertiesAndTextAction.setText(Messages.HideLowerFrameAction); + + + public void createActions() { } - public void hidePropertiesAndText() { - sashRows = form.getWeights(); - sashRows[2] = 0; - form.setWeights(sashRows); + public IServer getSelectedServer() { + return (IServer)jbViewer.getInput(); } public void refreshJBTree(ServerViewProvider provider) { - ASDebug.p("Refreshing the tree", this); final ServerViewProvider provider2 = provider; Display.getDefault().asyncExec(new Runnable() { public void run() { try { + Object[] selected = JBossServerView.this.jbViewer.getExpandedElements(); JBossServerView.this.jbViewer.refresh(provider2); - ISelection sel = JBossServerView.this.jbViewer.getSelection(); - JBossServerView.this.jbViewer.setSelection(sel); + JBossServerView.this.jbViewer.setExpandedElements(selected); } catch (Exception e) { // ignore } @@ -216,37 +165,6 @@ public void addListeners() { - jbViewer.addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - - // If the properties aren't showing, dont bother - if( form.getWeights()[2] == 0 ) - return; - - ISelection sel = event.getSelection(); - if( sel instanceof IStructuredSelection ) { - Object selected = ((IStructuredSelection)sel).getFirstElement(); - if( selected != null ) { - ServerViewProvider provider = jbViewer.getParentViewProvider(selected); - if( provider != null ) { - // We have a provider (extension) and a selected object. - // Maintain the properties / text boxes. - updatePropertiesTextViewers(provider, selected); - } else if( selected instanceof JBossServer || selected instanceof ServerViewProvider ){ - updatePropertiesTopLevel(selected); - } else { - clearPropertiesTextViewers(); - } - } else { - clearPropertiesTextViewers(); - } - propertiesForm.setWeights(sashCols); - } - } - - }); - - /* * Handles the selection of the server viewer which is embedded in my sashform */ @@ -262,114 +180,27 @@ if( selection == null ) return; - //if( jbViewer.getInput() != server ) { + if( server != jbViewer.getInput()) jbViewer.setInput(server); - //} } }); } - - public void clearPropertiesTextViewers() { - try { - propertiesViewer.setInput(null); - } catch( Exception e) {} - - propertiesText.setText(""); - sashCols[0] = 100; - sashCols[1] = 0; - } - - public void updatePropertiesTextViewers(ServerViewProvider provider, Object selected) { - // Surround the entire method - try { - - int propertiesType = provider.getDelegate().selectedObjectViewType(selected); - if( propertiesType == JBossServerViewExtension.PROPERTIES || - propertiesType == JBossServerViewExtension.PROPERTIES_AND_TEXT ) { - - propertiesViewer.setContentProvider(provider.getDelegate().getPropertiesContentProvider()); - propertiesViewer.setLabelProvider(provider.getDelegate().getPropertiesLabelProvider()); - propertiesViewer.setInput(selected); - propertiesViewer.refresh(); - - // set weights - if( propertiesType == JBossServerViewExtension.PROPERTIES) { - sashCols[0] = 100; - sashCols[1] = 0; - } else { - sashCols[0] = 50; - sashCols[1] = 50; - } - } else { - propertiesText.setText(provider.getDelegate().getPropertiesText(selected)); - sashCols[0] = 0; - sashCols[1] = 100; - } - - } catch( Exception e ) { - clearPropertiesTextViewers(); - } - - } - - public void updatePropertiesTopLevel(Object selected) { - propertiesViewer.setContentProvider(topLevelPropertiesProvider); - propertiesViewer.setLabelProvider(topLevelPropertiesProvider); - propertiesViewer.setInput(selected); - propertiesViewer.refresh(); - sashCols[0] = 100; - sashCols[1] = 0; - - } protected void doMenuStuff(Composite parent) { MenuManager menuManager = new MenuManager("#PopupMenu"); menuManager.setRemoveAllWhenShown(true); final Shell shell = jbTreeTable.getShell(); menuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager mgr) { - ISelection sel = jbViewer.getSelection(); - if( sel instanceof IStructuredSelection ) { - Object selected = ((IStructuredSelection)sel).getFirstElement(); - if( selected != null ) { - ServerViewProvider provider = jbViewer.getParentViewProvider(selected); - if( provider != null ) - provider.getDelegate().fillContextMenu(shell, mgr, selected); - } - } + jbViewer.fillSelectedContextMenu(shell, mgr); mgr.add(new Separator()); jbViewer.fillJBContextMenu(shell, mgr); } }); Menu menu = menuManager.createContextMenu(parent); jbTreeTable.setMenu(menu); - - - - MenuManager menuManager2 = new MenuManager("#PopupMenu"); - menuManager2.setRemoveAllWhenShown(true); - final Shell shell2 = propertiesForm.getShell(); - menuManager2.addMenuListener(new IMenuListener() { - public void menuAboutToShow(IMenuManager mgr) { - fillPropertiesContextMenu(shell2, mgr); - } - }); - Menu menu2 = menuManager2.createContextMenu(parent); - propertiesViewer.getTree().setMenu(menu2); - propertiesText.setMenu(menu2); } - public void fillPropertiesContextMenu(Shell shell, IMenuManager mgr) { - sashCols = propertiesForm.getWeights(); - if( sashCols[0] != 0 ) - mgr.add(hidePropertiesAction); - if( sashCols[1] != 0 ) - mgr.add(hideTextAction); - - // If only one of the two are present, do not show the 'hide both' action - if( !(sashCols[0] != 0 && sashCols[1] == 0 || sashCols[1] != 0 && sashCols[0] == 0 )) - mgr.add(hidePropertiesAndTextAction); - } /** * Save / Load some state (width / height of boxes) */ @@ -377,9 +208,9 @@ super.init(site, memento); ServerUIPlugin.getPreferences().setShowOnActivity(false); int sum = 0; - sashRows = new int[3]; + sashRows = new int[2]; for (int i = 0; i < sashRows.length; i++) { - sashRows[i] = (i == sashRows.length-1 ? 100-sum : 50); + sashRows[i] = 50; if (memento != null) { Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i); if (in != null && in.intValue() > 5) @@ -387,21 +218,6 @@ } sum += sashRows[i]; } - - sashCols = new int[2]; - sashCols[0] = 100; - sashCols[1] = 0; - - - propertyCols = new int[2]; - for (int i = 0; i < propertyCols.length; i++) { - propertyCols[i] = 100; - if (memento != null) { - Integer in = memento.getInteger(PROPERTIES_COLUMNS + i); - if (in != null && in.intValue() > 5) - propertyCols[i] = in.intValue(); - } - } } public void saveState(IMemento memento) { @@ -410,70 +226,21 @@ if (weights[i] != 0) memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]); } - - weights = propertiesForm.getWeights(); - for( int i = 0; i < weights.length; i++ ) { - if (weights[i] != 0) - memento.putInteger(TAG_SASHFORM_PROPERTIES + i, weights[i]); - } - - Tree propTree = propertiesViewer.getTree(); - TreeColumn[] columns = propTree.getColumns(); - for( int i = 0; i < columns.length; i++ ) { - memento.putInteger(PROPERTIES_COLUMNS + i, columns[i].getWidth()); - } - } - /** - * Properties for the top level elements - * (a server or a category / extension point - * @author rstryker - * - */ - class TopLevelProperties implements ISimplePropertiesHolder { - public Properties getProperties(Object selected) { - Properties ret = new Properties(); - if( selected instanceof ServerViewProvider ) { - ServerViewProvider provider = (ServerViewProvider)selected; - ret.setProperty(Messages.ExtensionID, provider.getId()); - ret.setProperty(Messages.ExtensionName, provider.getName()); - ret.setProperty(Messages.ExtensionDescription, provider.getDescription()); - ret.setProperty(Messages.ExtensionProviderClass, provider.getDelegateName()); - } - - if( selected instanceof JBossServer) { - JBossServer server = (JBossServer)selected; - String home = server.getRuntimeConfiguration().getServerHome(); - - ret.setProperty(Messages.ServerRuntimeVersion, server.getJBossRuntime().getVersionDelegate().getId()); - ret.setProperty(Messages.ServerHome, home); - ret.setProperty(Messages.ServerConfigurationName, server.getRuntimeConfiguration().getJbossConfiguration()); - ret.setProperty(Messages.ServerDeployDir, - server.getRuntimeConfiguration().getDeployDirectory().replace(home, "(home)")); - } - return ret; - } - - - public String[] getPropertyKeys(Object selected) { - if( selected instanceof ServerViewProvider) { - return new String[] { - Messages.ExtensionName, Messages.ExtensionDescription, - Messages.ExtensionID, Messages.ExtensionProviderClass - }; - - } - if( selected instanceof JBossServer ) { - return new String[] { - Messages.ServerRuntimeVersion, Messages.ServerHome, - Messages.ServerConfigurationName, Messages.ServerDeployDir, - }; + public Object getAdapter(Class adaptor) { + //ASDebug.p("It wants an adaptor: " + adaptor.getCanonicalName(), this); + if( adaptor == IPropertySheetPage.class) { + return jbViewer.getPropertySheet(); } - return new String[] {}; + return super.getAdapter(adaptor); } + + public void dispose() { + super.dispose(); + jbViewer.dispose(); } |
From: Robert S. <ra...@gm...> - 2006-06-27 18:00:31
|
User: rawb Date: 06/06/27 14:00:28 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java Log: Null checks for property sheet and category icons. Revision Changes Path 1.5 +1 -1 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerTableViewer.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- JBossServerTableViewer.java 27 Jun 2006 07:07:30 -0000 1.4 +++ JBossServerTableViewer.java 27 Jun 2006 18:00:28 -0000 1.5 @@ -272,7 +272,7 @@ ServerViewProvider provider = wrapper.getProvider(); IPropertySheetPage returnSheet = null; returnSheet = provider.getDelegate().getPropertySheetPage(); - if( !addedControls.contains(provider)) { + if( !addedControls.contains(provider) && returnSheet != null) { returnSheet.createControl(book); addedControls.add(provider); } |
From: Robert S. <ra...@gm...> - 2006-06-27 21:34:39
|
User: rawb Date: 06/06/27 17:34:36 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java Log: Added third category "Inactive Categories" as proof of concept but also for convenience. Revision Changes Path 1.6 +85 -15 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerTableViewer.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -b -r1.5 -r1.6 --- JBossServerTableViewer.java 27 Jun 2006 18:00:28 -0000 1.5 +++ JBossServerTableViewer.java 27 Jun 2006 21:34:36 -0000 1.6 @@ -1,3 +1,25 @@ +/* + * JBoss, Home of Professional Open Source + * Copyright 2006, JBoss Inc., and individual contributors as indicated + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ + package org.jboss.ide.eclipse.as.ui.views; import java.util.ArrayList; @@ -28,8 +50,10 @@ import org.jboss.ide.eclipse.as.core.server.JBossServer; import org.jboss.ide.eclipse.as.core.util.ASDebug; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin; +import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages; import org.jboss.ide.eclipse.as.ui.Messages; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; +import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog; import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory; import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.ISimplePropertiesHolder; import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.SimplePropertiesPropertySheetPage; @@ -38,12 +62,60 @@ protected TableViewerPropertySheet propertySheet; + protected Action disableCategoryAction, refreshViewerAction, twiddleAction; + public JBossServerTableViewer(Tree tree) { super(tree); setContentProvider(new ContentProviderDelegator()); setLabelProvider(new LabelProviderDelegator()); //topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new TopLevelProperties()); propertySheet = new TableViewerPropertySheet(); + createActions(); + } + + protected void createActions() { + refreshViewerAction = new Action() { + public void run() { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + refresh(); + } + }); + } + + }; + refreshViewerAction.setText(Messages.RefreshViewerAction); + + disableCategoryAction = new Action() { + public void run() { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + Object selected = getSelectedElement(); + if( selected instanceof ServerViewProvider) { + ((ServerViewProvider)selected).setEnabled(false); + refresh(); + } + } + } ); + } + }; + disableCategoryAction.setText(Messages.DisableCategoryAction); + + + twiddleAction = new Action() { + public void run() { + final IStructuredSelection selected = ((IStructuredSelection)getSelection()); + Display.getDefault().asyncExec(new Runnable() { + public void run() { + TwiddleDialog dialog = new TwiddleDialog(getTree().getShell(), selected); + dialog.open(); + } + } ); + + } + }; + twiddleAction.setText("Twiddle Server"); + twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE)); } public static class ContentWrapper { @@ -164,7 +236,9 @@ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getEnabledViewProviders(); for( int i = 0; i < providers.length; i++ ) { + try { providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput, newInput); + } catch( Exception e) {} } } @@ -204,24 +278,20 @@ } protected void fillJBContextMenu(Shell shell, IMenuManager menu) { - Action action1 = new Action() { - public void run() { - Display.getDefault().asyncExec(new Runnable() { - public void run() { - refresh(); - } - - }); + Object selected = getSelectedElement(); + if( selected instanceof JBossServer) { + menu.add(twiddleAction); } - }; - action1.setText("refresh viewer"); - menu.add(action1); + if( selected instanceof ServerViewProvider ) + menu.add(disableCategoryAction); + menu.add(refreshViewerAction); } + public IPropertySheetPage getPropertySheet() { return propertySheet; } |
From: Robert S. <ra...@gm...> - 2006-07-10 15:53:24
|
User: rawb Date: 06/07/10 11:53:23 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerView.java Log: Added a null check Revision Changes Path 1.6 +8 -4 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerView.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -b -r1.5 -r1.6 --- JBossServerView.java 27 Jun 2006 07:07:30 -0000 1.5 +++ JBossServerView.java 10 Jul 2006 15:53:23 -0000 1.6 @@ -50,7 +50,6 @@ import org.eclipse.wst.server.ui.internal.view.servers.ServersView; import org.jboss.ide.eclipse.as.core.JBossServerCore; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin.ServerViewProvider; -import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.JBossServersViewPropertySheetPage; public class JBossServerView extends ServersView { @@ -65,8 +64,6 @@ protected Tree jbTreeTable; - protected JBossServersViewPropertySheetPage propertyPage; - public static JBossServerView instance; public static JBossServerView getDefault() { @@ -152,6 +149,9 @@ Display.getDefault().asyncExec(new Runnable() { public void run() { try { + // If it's null, refresh the whole thing + if( provider2 == null ) { JBossServerView.this.jbViewer.refresh(); return; } + Object[] selected = JBossServerView.this.jbViewer.getExpandedElements(); JBossServerView.this.jbViewer.refresh(provider2); JBossServerView.this.jbViewer.setExpandedElements(selected); @@ -160,7 +160,6 @@ } } }); - } public void addListeners() { @@ -244,4 +243,9 @@ } + public JBossServerTableViewer getJbViewer() { + return jbViewer; + } + + } \ No newline at end of file |
From: Robert S. <ra...@gm...> - 2006-07-10 15:56:15
|
User: rawb Date: 06/07/10 11:56:12 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java Log: Uses attribute helper now. Revision Changes Path 1.7 +103 -24 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerTableViewer.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- JBossServerTableViewer.java 27 Jun 2006 21:34:36 -0000 1.6 +++ JBossServerTableViewer.java 10 Jul 2006 15:56:12 -0000 1.7 @@ -25,6 +25,8 @@ import java.util.ArrayList; import java.util.Properties; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.viewers.ISelection; @@ -33,6 +35,7 @@ import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; @@ -44,10 +47,17 @@ import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.part.PageBook; import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.wst.server.core.IRuntime; +import org.eclipse.wst.server.core.IRuntimeType; +import org.eclipse.wst.server.core.IRuntimeWorkingCopy; import org.eclipse.wst.server.core.IServer; +import org.eclipse.wst.server.core.IServerType; +import org.eclipse.wst.server.core.IServerWorkingCopy; +import org.eclipse.wst.server.core.internal.ServerType; import org.eclipse.wst.server.ui.ServerUICore; import org.jboss.ide.eclipse.as.core.JBossServerCore; import org.jboss.ide.eclipse.as.core.server.JBossServer; +import org.jboss.ide.eclipse.as.core.server.runtime.JBossServerRuntime; import org.jboss.ide.eclipse.as.core.util.ASDebug; import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin; import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages; @@ -57,18 +67,18 @@ import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory; import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.ISimplePropertiesHolder; import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.SimplePropertiesPropertySheetPage; +import org.jboss.ide.eclipse.as.ui.wizards.ServerCloneWizard; public class JBossServerTableViewer extends TreeViewer { protected TableViewerPropertySheet propertySheet; - protected Action disableCategoryAction, refreshViewerAction, twiddleAction; + protected Action disableCategoryAction, refreshViewerAction, twiddleAction, cloneServerAction; public JBossServerTableViewer(Tree tree) { super(tree); setContentProvider(new ContentProviderDelegator()); setLabelProvider(new LabelProviderDelegator()); - //topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new TopLevelProperties()); propertySheet = new TableViewerPropertySheet(); createActions(); } @@ -116,6 +126,70 @@ }; twiddleAction.setText("Twiddle Server"); twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE)); + + + cloneServerAction = new Action() { + public void run() { + Object selected = getSelectedElement(); + if( selected != null && selected instanceof JBossServer ) { + JBossServer server = (JBossServer)selected; + + + + // Show a wizard + ServerCloneWizard wizard = new ServerCloneWizard(server); + WizardDialog dlg = new WizardDialog(Display.getDefault().getActiveShell(), wizard); + dlg.open(); + + + + // clone the directories + + // clone the wst server + //wstServerClone(server, newName); + } + } + + public void directoriesClone() { + + } + + public void wstServerClone(JBossServer server, String newName) { + + IServerType serverType = server.getServer().getServerType(); + IRuntimeType runtimeType = server.getServer().getRuntime().getRuntimeType(); + JBossServerRuntime oldJBRuntime = (JBossServerRuntime)server.getServer().getRuntime().loadAdapter(JBossServerRuntime.class, null); + try { + IServerWorkingCopy newServerWC = serverType.createServer(null, null, null, null); + IRuntimeWorkingCopy newRuntimeWC = runtimeType.createRuntime("", null); + IRuntime runtime = newRuntimeWC.save(true, null); + JBossServerRuntime newJBRuntime = (JBossServerRuntime)newRuntimeWC.loadAdapter(JBossServerRuntime.class, null); + newJBRuntime.setVMInstall(oldJBRuntime.getVM()); + + + newServerWC.setRuntime(runtime); + + IFolder configFolder = ServerType.getServerProject().getFolder(newName); + if( !configFolder.exists() ) { + configFolder.create(true, true, null); + } + + newServerWC.setServerConfiguration(configFolder); + newServerWC.setName(newName); + + JBossServer newServer = (JBossServer)newServerWC.loadAdapter(JBossServer.class, null); + + +// newServer.getAttributeHelper().setServerHome(server.getAttributeHelper().getServerHome()); +// // then set the new config +// newServer.getAttributeHelper().setJbossConfiguration("default"); + + newServerWC.save(true, null); + } catch( CoreException ce) {} + } + }; + cloneServerAction.setText("Clone Server"); + } public static class ContentWrapper { @@ -199,6 +273,10 @@ } public Object[] getChildren(Object parentElement) { + try { + if( parentElement == null ) return new Object[0]; + + if( parentElement instanceof JBossServer) { return JBossServerUIPlugin.getDefault().getEnabledViewProviders(); } @@ -218,7 +296,7 @@ return new Object[0]; return wrap(o, parentWrapper.getProvider()); } - + } catch( Exception e ) { e.printStackTrace(); } return new Object[0]; } @@ -282,6 +360,7 @@ Object selected = getSelectedElement(); if( selected instanceof JBossServer) { menu.add(twiddleAction); + //menu.add(cloneServerAction); } @@ -378,13 +457,13 @@ if( selected instanceof JBossServer) { JBossServer server = (JBossServer)selected; - String home = server.getRuntimeConfiguration().getServerHome(); + String home = server.getAttributeHelper().getServerHome(); ret.setProperty(Messages.ServerRuntimeVersion, server.getJBossRuntime().getVersionDelegate().getId()); ret.setProperty(Messages.ServerHome, home); - ret.setProperty(Messages.ServerConfigurationName, server.getRuntimeConfiguration().getJbossConfiguration()); + ret.setProperty(Messages.ServerConfigurationName, server.getAttributeHelper().getJbossConfiguration()); ret.setProperty(Messages.ServerDeployDir, - server.getRuntimeConfiguration().getDeployDirectory().replace(home, "(home)")); + server.getAttributeHelper().getDeployDirectory().replace(home, "(home)")); } return ret; } |
From: Robert S. <ra...@gm...> - 2006-07-10 16:01:32
|
User: rawb Date: 06/07/10 12:01:20 Modified: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views JBossServerTableViewer.java Log: Commented out incomplete feature. Revision Changes Path 1.8 +3 -3 jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java (In the diff below, changes in quantity of whitespace are not shown.) Index: JBossServerTableViewer.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -b -r1.7 -r1.8 --- JBossServerTableViewer.java 10 Jul 2006 15:56:12 -0000 1.7 +++ JBossServerTableViewer.java 10 Jul 2006 16:01:20 -0000 1.8 @@ -137,9 +137,9 @@ // Show a wizard - ServerCloneWizard wizard = new ServerCloneWizard(server); - WizardDialog dlg = new WizardDialog(Display.getDefault().getActiveShell(), wizard); - dlg.open(); + //ServerCloneWizard wizard = new ServerCloneWizard(server); + //WizardDialog dlg = new WizardDialog(Display.getDefault().getActiveShell(), wizard); + //dlg.open(); |