[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers ...
Robert Stryker
rawblem at gmail.com
Wed Nov 15 17:26:57 EST 2006
User: rawb
Date: 06/11/15 17:26:57
Added: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers
EventLogViewProvider.java PollingLabelProvider.java
Log:
Rebuilt the event log API and fixed some UI bugs preventing an efficient refresh of the tree.
Revision Changes Path
1.1 date: 2006/11/15 22:26:57; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java
Index: EventLogViewProvider.java
===================================================================
package org.jboss.ide.eclipse.as.ui.views.server.providers;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.model.EventLogModel;
import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
import org.jboss.ide.eclipse.as.core.model.EventLogModel.IEventLogListener;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
public class EventLogViewProvider extends JBossServerViewExtension implements IEventLogListener {
private ITreeContentProvider contentProvider;
private LabelProvider labelProvider;
private IEventLogLabelProvider[] labelProviderDelegates = null;
private IServer input;
public EventLogViewProvider() {
contentProvider = new EventLogContentProvider();
labelProvider = new EventLogLabelProvider();
EventLogModel.getDefault().addListener(this);
}
public class EventLogContentProvider implements ITreeContentProvider {
public Object[] getChildren(Object parentElement) {
if( parentElement instanceof ServerViewProvider && input != null ) {
return EventLogModel.getModel(input).getRoot().getChildren();
}
if( parentElement instanceof EventLogTreeItem ) {
return ((EventLogTreeItem)parentElement).getChildren();
}
return new Object[0];
}
public Object getParent(Object element) {
return null;
}
public boolean hasChildren(Object element) {
return getChildren(element).length > 0 ? true : false;
}
public Object[] getElements(Object inputElement) {
// Unused
return null;
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
input = (IServer)newInput;
}
}
public class EventLogLabelProvider extends LabelProvider {
public Image getImage(Object element) {
if( labelProviderDelegates == null )
loadLabelProviderDelegates();
if( element instanceof ServerViewProvider ) {
return ((ServerViewProvider)element).getImage();
}
if( !(element instanceof EventLogTreeItem)) return null;
EventLogTreeItem item = (EventLogTreeItem)element;
for( int i = 0; i < labelProviderDelegates.length; i++ ) {
if( labelProviderDelegates[i] != null
&& labelProviderDelegates[i].supports(item.getType())) {
Image image = labelProviderDelegates[i].getImage(element);
if( image != null ) return image;
}
}
return null;
}
public String getText(Object element) {
if( labelProviderDelegates == null )
loadLabelProviderDelegates();
if( element instanceof ServerViewProvider ) {
return ((ServerViewProvider)element).getName();
}
if( !(element instanceof EventLogTreeItem)) return element.toString();
EventLogTreeItem item = (EventLogTreeItem)element;
for( int i = 0; i < labelProviderDelegates.length; i++ ) {
if( labelProviderDelegates[i] != null
&& labelProviderDelegates[i].supports(item.getType())) {
String text = labelProviderDelegates[i].getText((EventLogTreeItem)element);
if( text != null ) return text;
}
}
return element == null ? "" : element.toString();
}
public void loadLabelProviderDelegates() {
IExtensionRegistry registry = Platform.getExtensionRegistry();
IConfigurationElement[] elements = registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID, "EventLogLabelProvider");
labelProviderDelegates = new IEventLogLabelProvider[elements.length];
for( int i = 0; i < elements.length; i++ ) {
try {
labelProviderDelegates[i] = (IEventLogLabelProvider)elements[i].createExecutableExtension("class");
} catch( CoreException ce ) {}
}
}
}
public void fillContextMenu(Shell shell, IMenuManager menu, Object selection) {
}
public ITreeContentProvider getContentProvider() {
return contentProvider;
}
public LabelProvider getLabelProvider() {
return labelProvider;
}
public IPropertySheetPage getPropertySheetPage() {
return null;
}
/* (non-Javadoc)
* @see org.jboss.ide.eclipse.as.core.model.EventLogModel.IEventLogListener#eventModelChanged(java.lang.String, org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem)
*/
public void eventModelChanged(String serverId, EventLogTreeItem changed) {
if( input != null && serverId.equals(input.getId())) {
if(changed.getType().equals("jboss.event.root"))
refreshViewer();
else
refreshViewer(changed);
}
}
}
1.1 date: 2006/11/15 22:26:57; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/PollingLabelProvider.java
Index: PollingLabelProvider.java
===================================================================
/**
* JBoss, a Division of Red Hat
* Copyright 2006, Red Hat Middleware, LLC, 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.server.providers;
import java.util.ArrayList;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
import org.jboss.ide.eclipse.as.core.runtime.server.IServerStatePoller;
import org.jboss.ide.eclipse.as.core.runtime.server.polling.PollThread;
import org.jboss.ide.eclipse.as.core.runtime.server.polling.TwiddlePoller;
import org.jboss.ide.eclipse.as.core.runtime.server.polling.PollThread.PollThreadEvent;
import org.jboss.ide.eclipse.as.core.server.JBossServerBehavior;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
/**
*
* @author rob.stryker at jboss.com
*/
public class PollingLabelProvider extends LabelProvider implements IEventLogLabelProvider {
private ArrayList supported;
public PollingLabelProvider() {
supported = new ArrayList();
supported.add(PollThread.SERVER_STARTING);
supported.add(PollThread.SERVER_STOPPING);
supported.add(PollThread.FAILURE);
supported.add(PollThread.SUCCESS);
supported.add(PollThread.POLL_THREAD_ABORTED);
supported.add(PollThread.POLL_THREAD_TIMEOUT);
supported.add(TwiddlePoller.TYPE_TERMINATED);
supported.add(TwiddlePoller.TYPE_RESULT);
supported.add(JBossServerBehavior.FORCE_SHUTDOWN_EVENT_KEY);
}
public boolean supports(String type) {
return supported.contains(type);
}
public Image getImage(EventLogTreeItem element) {
return null;
}
public String getText(EventLogTreeItem element) {
if( element.getType().equals(PollThread.SERVER_STARTING)) return "Starting the Server";
if( element.getType().equals(PollThread.SERVER_STOPPING)) return "Stopping the Server";
if( element instanceof PollThreadEvent ) {
boolean expected = ((PollThreadEvent)element).getExpectedState();
String expectedString = expected == IServerStatePoller.SERVER_UP ? "startup" : "shutdown";
if( element.getType().equals(PollThread.POLL_THREAD_ABORTED)) return expectedString + " aborted";
if( element.getType().equals(PollThread.POLL_THREAD_TIMEOUT)) return expectedString + " timed out";
if( element.getType().equals(PollThread.SUCCESS)) return expectedString + " succeeded";
if( element.getType().equals(PollThread.FAILURE)) return expectedString + " failed";
}
if( element.getType().equals(TwiddlePoller.TYPE_TERMINATED)) return "All processes have been terminated";
if( element.getType().equals(TwiddlePoller.TYPE_RESULT)) {
int state = ((Integer)element.getProperty(TwiddlePoller.STATUS)).intValue();
boolean expectedState = ((Boolean)element.getProperty(TwiddlePoller.EXPECTED_STATE)).booleanValue();
if( state == TwiddlePoller.STATE_STOPPED)
return "The server is down.";
if( state == TwiddlePoller.STATE_STARTED)
return "The server is up.";
if( state == TwiddlePoller.STATE_TRANSITION) {
if( expectedState == IServerStatePoller.SERVER_UP )
return "The server is still starting";
return "The server is still stopping.";
}
}
if( element.getType().equals(JBossServerBehavior.FORCE_SHUTDOWN_EVENT_KEY))
return "The server was shutdown forcefully. All processes terminated.";
return null;
}
}
More information about the jboss-cvs-commits
mailing list