JBoss Tools SVN: r8172 - in trunk/ws/plugins: org.jboss.tools.ws.ui and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2008-05-17 02:22:49 -0400 (Sat, 17 May 2008)
New Revision: 8172
Modified:
trunk/ws/plugins/org.jboss.tools.ws.core/
trunk/ws/plugins/org.jboss.tools.ws.ui/
Log:
ws bin ignore
Property changes on: trunk/ws/plugins/org.jboss.tools.ws.core
___________________________________________________________________
Name: svn:ignore
- bin
+ bin
bin
Property changes on: trunk/ws/plugins/org.jboss.tools.ws.ui
___________________________________________________________________
Name: svn:ignore
- bin
+ bin
bin
17 years, 11 months
JBoss Tools SVN: r8171 - in trunk: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-05-16 22:30:22 -0400 (Fri, 16 May 2008)
New Revision: 8171
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java
Log:
JBIDE-2211 on trunk stream
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-05-17 02:28:45 UTC (rev 8170)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-05-17 02:30:22 UTC (rev 8171)
@@ -1,181 +1,186 @@
-/**
- * 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.core.modules;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.IModule;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
-import org.jboss.ide.eclipse.archives.core.model.IArchive;
-import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
-import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
-import org.jboss.ide.eclipse.as.core.modules.PackageModuleFactory.IModuleContributor;
-import org.jboss.ide.eclipse.as.core.modules.PackageModuleFactory.PackagedModuleDelegate;
-
-/**
- *
- * @author Rob Stryker rob.stryker(a)jboss.com
- *
- */
-public class ArchivesModelModuleContributor implements IModuleContributor {
-
- private static ArchivesModelModuleContributor instance;
- public static ArchivesModelModuleContributor getInstance() {
- if( instance == null ) {
- instance = new ArchivesModelModuleContributor(PackageModuleFactory.getFactory());
- }
- return instance;
- }
-
- private PackageModuleFactory factory;
- protected ArrayList<IModule> modules = null;
- protected HashMap<IPath, ArrayList<IModule>> projectToModules = new HashMap<IPath, ArrayList<IModule>>(5); //IPath to IModule
- protected HashMap<IModule, Object> moduleDelegates = new HashMap<IModule, Object>(5);
- protected HashMap<IArchive, IModule> packageToModule = new HashMap<IArchive, IModule>(5);
-
- private ArchivesModelModuleContributor(PackageModuleFactory factory) {
- this.factory = factory;
- }
-
- public IModule[] getModules() {
- if( modules == null ) {
- modules = new ArrayList<IModule>();
- IProject[] projects2 = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- int size = projects2.length;
- for (int i = 0; i < size; i++) {
- if (projects2[i].isAccessible()) {
- try {
- createModules(projects2[i]);
- } catch(ArchivesModelException ame) {
- IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
- JBossServerCorePlugin.getDefault().getLog().log(status);
- }
- }
- }
- }
- return modules.toArray(new IModule[modules.size()]);
- }
-
- protected void createModules(IProject project) throws ArchivesModelException {
- IArchive[] packs = ModelUtil.getProjectArchives(project.getLocation());
- if( packs != null && packs.length > 0 ) {
- IModule module;
- if( !ArchivesModel.instance().isProjectRegistered(project.getLocation())) {
- ArchivesModel.instance().registerProject(project.getLocation(), new NullProgressMonitor());
- }
- IArchive[] packages = ModelUtil.getProjectArchives(project.getLocation());
- boolean requiresSave = ensureArchivesHaveIDs(project, packages);
- ArrayList<IModule> mods = new ArrayList<IModule>();
- for( int i = 0; i < packages.length; i++ ) {
- module = factory.createModule2(packages[i], project);
- modules.add(module);
- Object moduleDelegate = new PackagedModuleDelegate(packages[i]);
- packageToModule.put(packages[i], module);
- moduleDelegates.put(module, moduleDelegate);
- mods.add(module);
- }
- projectToModules.put(project.getLocation(), mods);
- if( requiresSave )
- try {
- ArchivesModel.instance().save(project.getLocation(),
- new NullProgressMonitor());
- } catch( ArchivesModelException ame ) {
-
- }
- }
- }
-
- public boolean containsModule(IModule module) {
- return moduleDelegates.containsKey(module);
- }
-
- public PackagedModuleDelegate getModuleDelegate(IModule module) {
- return (PackagedModuleDelegate)moduleDelegates.get(module);
- }
-
- public void refreshProject(IPath projectLoc) {
- // prime, make sure all are found
- if( modules == null )
- getModules();
-
- // remove old mods
- ArrayList<IModule> mods = projectToModules.get(projectLoc);
- IModule mod;
- PackagedModuleDelegate delegate;
- if (mods != null) {
- for( Iterator<IModule> i = mods.iterator(); i.hasNext();) {
- mod = (IModule)i.next();
- if( modules.contains(mod)) {
- delegate = ((PackagedModuleDelegate)moduleDelegates.get(mod));
- moduleDelegates.remove(mod);
- modules.remove(mod);
- if( delegate != null )
- packageToModule.remove(delegate.getPackage());
- }
- }
- }
- try {
- createModules(findProject(projectLoc));
- } catch( ArchivesModelException ame ) {
- IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
- JBossServerCorePlugin.getDefault().getLog().log(status);
- }
- }
-
- protected IProject findProject(IPath projectLoc) {
- IProject proj = null;
- IProject[] projects2 = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- int size = projects2.length;
- for (int i = 0; i < size; i++) {
- if( projects2[i].getLocation().equals(projectLoc))
- proj = projects2[i];
- }
- return proj;
- }
-
- /**
- * Set a property so that each module that's here in the factory
- * has a unique ID other than it's name (which is not unique)
- * @param archives
- * @return returns whether a save has occurred
- */
- protected boolean ensureArchivesHaveIDs(IProject project, IArchive[] archives) {
- boolean requiresSave = false;
- for( int i = 0; i < archives.length; i++ ) {
- if( PackageModuleFactory.getID(archives[i]) == null ) {
- requiresSave = true;
- archives[i].setProperty(PackageModuleFactory.MODULE_ID_PROPERTY_KEY,
- PackageModuleFactory.getID(archives[i], true));
- }
- }
- return requiresSave;
- }
-}
+/**
+ * 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.core.modules;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.server.core.IModule;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
+import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.core.modules.PackageModuleFactory.IModuleContributor;
+import org.jboss.ide.eclipse.as.core.modules.PackageModuleFactory.PackagedModuleDelegate;
+
+/**
+ *
+ * @author Rob Stryker rob.stryker(a)jboss.com
+ *
+ */
+public class ArchivesModelModuleContributor implements IModuleContributor {
+
+ private static ArchivesModelModuleContributor instance;
+ public static ArchivesModelModuleContributor getInstance() {
+ if( instance == null ) {
+ instance = new ArchivesModelModuleContributor(PackageModuleFactory.getFactory());
+ }
+ return instance;
+ }
+
+ private PackageModuleFactory factory;
+ protected ArrayList<IModule> modules = null;
+ protected HashMap<IPath, ArrayList<IModule>> projectToModules = new HashMap<IPath, ArrayList<IModule>>(5); //IPath to IModule
+ protected HashMap<IModule, Object> moduleDelegates = new HashMap<IModule, Object>(5);
+ protected HashMap<IArchive, IModule> packageToModule = new HashMap<IArchive, IModule>(5);
+
+ private ArchivesModelModuleContributor(PackageModuleFactory factory) {
+ this.factory = factory;
+ }
+
+ public IModule[] getModules() {
+ if( modules == null ) {
+ modules = new ArrayList<IModule>();
+ IProject[] projects2 = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+ int size = projects2.length;
+ for (int i = 0; i < size; i++) {
+ if (projects2[i].isAccessible()) {
+
+ if( !ArchivesModel.instance().isProjectRegistered(projects2[i].getLocation())) {
+ if( ArchivesModel.instance().canReregister(projects2[i].getLocation()))
+ // registration should also add this to the factory manually, so do not create the module
+ ArchivesModel.instance().registerProject(projects2[i].getLocation(), new NullProgressMonitor());
+ } else {
+ try {
+ // project is already registered. create the module
+ createModules(projects2[i]);
+ } catch(ArchivesModelException ame) {
+ IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
+ JBossServerCorePlugin.getDefault().getLog().log(status);
+ }
+ }
+ }
+ }
+ }
+ return modules.toArray(new IModule[modules.size()]);
+ }
+
+ protected void createModules(IProject project) throws ArchivesModelException {
+ IArchive[] packages = ModelUtil.getProjectArchives(project.getLocation());
+ if( packages != null && packages.length > 0 ) {
+ IModule module;
+ boolean requiresSave = ensureArchivesHaveIDs(project, packages);
+ ArrayList<IModule> mods = new ArrayList<IModule>();
+ for( int i = 0; i < packages.length; i++ ) {
+ module = factory.createModule2(packages[i], project);
+ modules.add(module);
+ Object moduleDelegate = new PackagedModuleDelegate(packages[i]);
+ packageToModule.put(packages[i], module);
+ moduleDelegates.put(module, moduleDelegate);
+ mods.add(module);
+ }
+ projectToModules.put(project.getLocation(), mods);
+ if( requiresSave ) {
+ try {
+ ArchivesModel.instance().save(project.getLocation(),
+ new NullProgressMonitor());
+ } catch( ArchivesModelException ame ) {
+
+ }
+ }
+ }
+ }
+
+ public boolean containsModule(IModule module) {
+ return moduleDelegates.containsKey(module);
+ }
+
+ public PackagedModuleDelegate getModuleDelegate(IModule module) {
+ return (PackagedModuleDelegate)moduleDelegates.get(module);
+ }
+
+ public void refreshProject(IPath projectLoc) {
+ // prime, make sure all are found
+ if( modules == null )
+ getModules();
+
+ // remove old mods
+ ArrayList<IModule> mods = projectToModules.get(projectLoc);
+ IModule mod;
+ PackagedModuleDelegate delegate;
+ if (mods != null) {
+ for( Iterator<IModule> i = mods.iterator(); i.hasNext();) {
+ mod = (IModule)i.next();
+ if( modules.contains(mod)) {
+ delegate = ((PackagedModuleDelegate)moduleDelegates.get(mod));
+ moduleDelegates.remove(mod);
+ modules.remove(mod);
+ if( delegate != null )
+ packageToModule.remove(delegate.getPackage());
+ }
+ }
+ }
+ try {
+ createModules(findProject(projectLoc));
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
+ JBossServerCorePlugin.getDefault().getLog().log(status);
+ }
+ }
+
+ protected IProject findProject(IPath projectLoc) {
+ IProject proj = null;
+ IProject[] projects2 = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+ int size = projects2.length;
+ for (int i = 0; i < size; i++) {
+ if( projects2[i].getLocation().equals(projectLoc))
+ proj = projects2[i];
+ }
+ return proj;
+ }
+
+ /**
+ * Set a property so that each module that's here in the factory
+ * has a unique ID other than it's name (which is not unique)
+ * @param archives
+ * @return returns whether a save has occurred
+ */
+ protected boolean ensureArchivesHaveIDs(IProject project, IArchive[] archives) {
+ boolean requiresSave = false;
+ for( int i = 0; i < archives.length; i++ ) {
+ if( PackageModuleFactory.getID(archives[i]) == null ) {
+ requiresSave = true;
+ archives[i].setProperty(PackageModuleFactory.MODULE_ID_PROPERTY_KEY,
+ PackageModuleFactory.getID(archives[i], true));
+ }
+ }
+ return requiresSave;
+ }
+}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2008-05-17 02:28:45 UTC (rev 8170)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2008-05-17 02:30:22 UTC (rev 8171)
@@ -32,6 +32,8 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.model.IModuleFile;
+import org.eclipse.wst.server.core.model.IModuleFolder;
import org.eclipse.wst.server.core.model.IModuleResource;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
@@ -79,9 +81,9 @@
if( publishType == REMOVE_PUBLISH ) {
removeModule(module2, monitor);
} else if( publishType == FULL_PUBLISH ) {
+ publishModule(module2, false, monitor);
+ } else if( publishType == INCREMENTAL_PUBLISH ) {
publishModule(module2, true, monitor);
- } else if( publishType == INCREMENTAL_PUBLISH ) {
- publishModule(module2, false, monitor);
}
}catch(Exception e) {
IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error during publish", e);
@@ -117,9 +119,11 @@
PublisherFileUtilListener listener = new PublisherFileUtilListener(eventRoot);
if( incremental ) {
+ eventRoot.setProperty(PublisherEventLogger.CHANGED_FILE_COUNT, countChanges(delta));
publishFromDelta(module, destPathRoot, sourcePath.removeLastSegments(1), delta, listener);
} else {
// full publish, copy whole folder or file
+ eventRoot.setProperty(PublisherEventLogger.CHANGED_FILE_COUNT, countConcreteFiles(module));
FileUtil.fileSafeCopy(sourcePath.toFile(), destPathRoot.append(sourcePath.lastSegment()).toFile(), listener);
}
}
@@ -131,6 +135,44 @@
publishFromDeltaHandle(delta[i], destPathRoot, sourcePrefix, changedFiles, listener);
}
}
+
+ protected int countChanges(IModuleResourceDelta[] deltas) {
+ IModuleResource res;
+ int count = 0;
+ if( deltas == null ) return 0;
+ for( int i = 0; i < deltas.length; i++ ) {
+ res = deltas[i].getModuleResource();
+ if( res != null && res instanceof IModuleFile)
+ count++;
+ count += countChanges(deltas[i].getAffectedChildren());
+ }
+ return count;
+ }
+
+ protected int countConcreteFiles(IModule module) {
+ PackagedModuleDelegate delegate = (PackagedModuleDelegate)module.loadAdapter(PackagedModuleDelegate.class, new NullProgressMonitor());
+ try {
+ ArrayList list = new ArrayList();
+ countConcreteFiles(delegate.members()[0], list);
+ return list.size();
+ } catch( CoreException ce ) {
+
+ }
+ return -1;
+ }
+ protected void countConcreteFiles(IModuleResource mr, ArrayList list) {
+ if( mr instanceof IExtendedModuleResource) {
+ IExtendedModuleResource emr = ((IExtendedModuleResource)mr);
+ IPath p = emr.getConcreteDestFile();
+ if( mr instanceof IModuleFile && !list.contains(p)) list.add(p);
+ if( mr instanceof IModuleFolder) {
+ IModuleResource[] children = ((IModuleFolder)mr).members();
+ for( int i = 0; i < children.length; i++ )
+ countConcreteFiles(children[i], list);
+ }
+ }
+ }
+
protected void publishFromDeltaHandle(IModuleResourceDelta delta, IPath destRoot,
IPath sourcePrefix, ArrayList<IPath> changedFiles, PublisherFileUtilListener listener) {
switch( delta.getKind()) {
@@ -160,7 +202,7 @@
}
return;
} else {
- System.out.println("not an extended module resource. need help here");
+ // TODO
return;
}
case IModuleResourceDelta.ADDED:
@@ -174,7 +216,7 @@
}
return;
} else {
- System.out.println("not an extended module resource. need help here");
+ // TODO
return;
}
case IModuleResourceDelta.CHANGED:
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-05-17 02:28:45 UTC (rev 8170)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-05-17 02:30:22 UTC (rev 8171)
@@ -1,234 +1,242 @@
-/*
- * 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.archives.core.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.jboss.ide.eclipse.archives.core.ArchivesCore;
-import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
-import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
-
-/**
- * The root model which keeps track of registered projects
- * and what archives / model nodes they contain.
- *
- * @author <a href="rob.stryker(a)redhat.com">Rob Stryker</a>
- */
-public class ArchivesModel implements IArchiveModel {
-
- /**
- * Singleton instance
- */
- protected static IArchiveModel instance;
- public static IArchiveModel instance() {
- if( instance == null )
- instance = new ArchivesModel();
- return instance;
- }
-
- private HashMap<IPath, XbPackages> xbPackages; // maps an IPath (of a project) to XbPackages
- private HashMap<IPath, ArchiveModelNode> archivesRoot; // maps an IPath (of a project) to PackageModelNode, aka root
- private ArrayList<IArchiveBuildListener> buildListeners;
- private ArrayList<IArchiveModelListener> modelListeners;
- public ArchivesModel() {
- xbPackages = new HashMap<IPath, XbPackages>();
- archivesRoot = new HashMap<IPath, ArchiveModelNode>();
- buildListeners = new ArrayList<IArchiveBuildListener>();
- modelListeners = new ArrayList<IArchiveModelListener>();
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#addBuildListener(org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener)
- */
- public void addBuildListener(IArchiveBuildListener listener) {
- if( !buildListeners.contains(listener))
- buildListeners.add(listener);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#removeBuildListener(org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener)
- */
- public void removeBuildListener(IArchiveBuildListener listener) {
- buildListeners.remove(listener);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getBuildListeners()
- */
- public IArchiveBuildListener[] getBuildListeners() {
- return buildListeners.toArray(new IArchiveBuildListener[buildListeners.size()]);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#addModelListener(org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener)
- */
- public void addModelListener(IArchiveModelListener listener) {
- if( !modelListeners.contains(listener))
- modelListeners.add(listener);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#removeModelListener(org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener)
- */
- public void removeModelListener(IArchiveModelListener listener) {
- if( modelListeners.contains(listener))
- modelListeners.remove(listener);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getModelListeners()
- */
- public IArchiveModelListener[] getModelListeners() {
- return modelListeners.toArray(new IArchiveModelListener[modelListeners.size()]);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getModelNodes()
- */
- public IArchiveModelRootNode[] getModelNodes() {
- Collection<ArchiveModelNode> c = archivesRoot.values();
- return (IArchiveModelRootNode[]) c.toArray(new IArchiveModelRootNode[c.size()]);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#accept(org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor)
- */
- public boolean accept(IArchiveNodeVisitor visitor) {
- IArchiveModelRootNode[] children = getModelNodes();
- boolean keepGoing = true;
- if (keepGoing)
- for (int i = 0; i < children.length; i++)
- if (keepGoing)
- keepGoing = children[i].accept(visitor);
- return keepGoing;
- }
-
-
- public IArchiveModelRootNode getRoot(IPath project) {
- return (archivesRoot.get(project));
- }
-
- @Deprecated
- public void save(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
- save(getRoot(projectPath), monitor);
- }
-
- @Deprecated
- public void save(IArchiveModelRootNode modelNode, IProgressMonitor monitor) throws ArchivesModelException {
- modelNode.save(monitor);
- }
-
- public boolean isProjectRegistered(IPath projectPath) {
- return archivesRoot.containsKey(projectPath);
- }
-
- public IArchiveModelRootNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
- return registerProject(projectPath, DEFAULT_PACKAGES_FILE, monitor);
- }
-
- public IArchiveModelRootNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException {
- XbPackages packages;
- ArchiveModelNode modelNode;
-
- IPath packagesFile = projectPath.append(file);
- if (packagesFile.toFile().exists()) {
- try {
- packages = XMLBinding.unmarshal(packagesFile.toFile(), monitor);
- } catch( XbException xbe ) {
- // Empty / non-working XML file loaded
- ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Error unmarshalling packages file " + packagesFile, xbe);
- return null;
- }
- } else {
- packages = new XbPackages();
- }
-
- // Fill the model
- modelNode = new ArchiveModelNode(projectPath, projectPath.append(file), packages, this);
- ModelUtil.fillArchiveModel(packages, modelNode);
- modelNode.clearDelta();
-
- registerProject(modelNode, monitor);
- return modelNode;
- }
-
- public void registerProject(IArchiveModelRootNode model, IProgressMonitor monitor) {
- ArchivesCore.getInstance().preRegisterProject(model.getProjectPath());
- xbPackages.put(model.getProjectPath(), ((ArchiveModelNode)model).getXbPackages());
- archivesRoot.put(model.getProjectPath(), (ArchiveModelNode)model);
- model.setModel(this);
- fireRegisterProjectEvent((ArchiveModelNode)model);
- }
-
- public void unregisterProject(IPath projectPath, IProgressMonitor monitor) {
- IArchiveModelRootNode root = getRoot(projectPath);
- xbPackages.remove(projectPath);
- archivesRoot.remove(projectPath);
- fireUnregisterProjectEvent(root);
- }
-
- public void unregisterProject(IArchiveModelRootNode model, IProgressMonitor monitor) {
- xbPackages.remove(model.getProjectPath());
- archivesRoot.remove(model.getProjectPath());
- fireUnregisterProjectEvent((ArchiveModelNode)model);
- }
-
- protected void fireRegisterProjectEvent(final IArchiveModelRootNode newRoot) {
- fireRegistrationEvent(null, newRoot, IArchiveNodeDelta.NODE_REGISTERED);
- }
-
- protected void fireUnregisterProjectEvent(final IArchiveModelRootNode oldRoot) {
- fireRegistrationEvent(oldRoot, null, IArchiveNodeDelta.NODE_UNREGISTERED);
- }
-
- protected void fireRegistrationEvent(final IArchiveModelRootNode oldRoot, final IArchiveModelRootNode newRoot, final int type) {
- IArchiveNodeDelta delta = new IArchiveNodeDelta() {
- public IArchiveNodeDelta[] getAddedChildrenDeltas() {return null;}
- public IArchiveNodeDelta[] getAllAffectedChildren() {return null;}
- public INodeDelta getAttributeDelta(String key) {return null;}
- public String[] getAttributesWithDeltas() {return null;}
- public IArchiveNodeDelta[] getChangedDescendentDeltas() {return null;}
- public int getKind() {return type;}
- public IArchiveNode getPostNode() {return newRoot;}
- public IArchiveNode getPreNode() { return oldRoot; }
- public String[] getPropertiesWithDeltas() {return null;}
- public INodeDelta getPropertyDelta(String key) {return null;}
- public IArchiveNodeDelta[] getRemovedChildrenDeltas() {return null;}
- };
- EventManager.fireDelta(delta);
- }
-}
+/*
+ * 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.archives.core.model;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.jboss.ide.eclipse.archives.core.ArchivesCore;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
+
+/**
+ * The root model which keeps track of registered projects
+ * and what archives / model nodes they contain.
+ *
+ * @author <a href="rob.stryker(a)redhat.com">Rob Stryker</a>
+ */
+public class ArchivesModel implements IArchiveModel {
+
+ /**
+ * Singleton instance
+ */
+ protected static IArchiveModel instance;
+ public static IArchiveModel instance() {
+ if( instance == null )
+ instance = new ArchivesModel();
+ return instance;
+ }
+
+ private HashMap<IPath, XbPackages> xbPackages; // maps an IPath (of a project) to XbPackages
+ private HashMap<IPath, ArchiveModelNode> archivesRoot; // maps an IPath (of a project) to PackageModelNode, aka root
+ private ArrayList<IArchiveBuildListener> buildListeners;
+ private ArrayList<IArchiveModelListener> modelListeners;
+ public ArchivesModel() {
+ xbPackages = new HashMap<IPath, XbPackages>();
+ archivesRoot = new HashMap<IPath, ArchiveModelNode>();
+ buildListeners = new ArrayList<IArchiveBuildListener>();
+ modelListeners = new ArrayList<IArchiveModelListener>();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#addBuildListener(org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener)
+ */
+ public void addBuildListener(IArchiveBuildListener listener) {
+ if( !buildListeners.contains(listener))
+ buildListeners.add(listener);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#removeBuildListener(org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener)
+ */
+ public void removeBuildListener(IArchiveBuildListener listener) {
+ buildListeners.remove(listener);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getBuildListeners()
+ */
+ public IArchiveBuildListener[] getBuildListeners() {
+ return buildListeners.toArray(new IArchiveBuildListener[buildListeners.size()]);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#addModelListener(org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener)
+ */
+ public void addModelListener(IArchiveModelListener listener) {
+ if( !modelListeners.contains(listener))
+ modelListeners.add(listener);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#removeModelListener(org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener)
+ */
+ public void removeModelListener(IArchiveModelListener listener) {
+ if( modelListeners.contains(listener))
+ modelListeners.remove(listener);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getModelListeners()
+ */
+ public IArchiveModelListener[] getModelListeners() {
+ return modelListeners.toArray(new IArchiveModelListener[modelListeners.size()]);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getModelNodes()
+ */
+ public IArchiveModelRootNode[] getModelNodes() {
+ Collection<ArchiveModelNode> c = archivesRoot.values();
+ return (IArchiveModelRootNode[]) c.toArray(new IArchiveModelRootNode[c.size()]);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#accept(org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor)
+ */
+ public boolean accept(IArchiveNodeVisitor visitor) {
+ IArchiveModelRootNode[] children = getModelNodes();
+ boolean keepGoing = true;
+ if (keepGoing)
+ for (int i = 0; i < children.length; i++)
+ if (keepGoing)
+ keepGoing = children[i].accept(visitor);
+ return keepGoing;
+ }
+
+
+ public IArchiveModelRootNode getRoot(IPath project) {
+ return (archivesRoot.get(project));
+ }
+
+ @Deprecated
+ public void save(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
+ save(getRoot(projectPath), monitor);
+ }
+
+ @Deprecated
+ public void save(IArchiveModelRootNode modelNode, IProgressMonitor monitor) throws ArchivesModelException {
+ modelNode.save(monitor);
+ }
+
+ public boolean isProjectRegistered(IPath projectPath) {
+ return archivesRoot.containsKey(projectPath);
+ }
+
+ public boolean canReregister(IPath projectPath) {
+ return canReregister(projectPath, DEFAULT_PACKAGES_FILE);
+ }
+
+ public boolean canReregister(IPath projectPath, String file) {
+ return projectPath.append(file).toFile().exists();
+ }
+
+ public IArchiveModelRootNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
+ return registerProject(projectPath, DEFAULT_PACKAGES_FILE, monitor);
+ }
+
+ public IArchiveModelRootNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException {
+ XbPackages packages;
+ ArchiveModelNode modelNode;
+
+ IPath packagesFile = projectPath.append(file);
+ if (packagesFile.toFile().exists()) {
+ try {
+ packages = XMLBinding.unmarshal(packagesFile.toFile(), monitor);
+ } catch( XbException xbe ) {
+ // Empty / non-working XML file loaded
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Error unmarshalling packages file " + packagesFile, xbe);
+ return null;
+ }
+ } else {
+ packages = new XbPackages();
+ }
+
+ // Fill the model
+ modelNode = new ArchiveModelNode(projectPath, projectPath.append(file), packages, this);
+ ModelUtil.fillArchiveModel(packages, modelNode);
+ modelNode.clearDelta();
+
+ registerProject(modelNode, monitor);
+ return modelNode;
+ }
+
+ public void registerProject(IArchiveModelRootNode model, IProgressMonitor monitor) {
+ ArchivesCore.getInstance().preRegisterProject(model.getProjectPath());
+ xbPackages.put(model.getProjectPath(), ((ArchiveModelNode)model).getXbPackages());
+ archivesRoot.put(model.getProjectPath(), (ArchiveModelNode)model);
+ model.setModel(this);
+ fireRegisterProjectEvent((ArchiveModelNode)model);
+ }
+
+ public void unregisterProject(IPath projectPath, IProgressMonitor monitor) {
+ IArchiveModelRootNode root = getRoot(projectPath);
+ xbPackages.remove(projectPath);
+ archivesRoot.remove(projectPath);
+ fireUnregisterProjectEvent(root);
+ }
+
+ public void unregisterProject(IArchiveModelRootNode model, IProgressMonitor monitor) {
+ xbPackages.remove(model.getProjectPath());
+ archivesRoot.remove(model.getProjectPath());
+ fireUnregisterProjectEvent((ArchiveModelNode)model);
+ }
+
+ protected void fireRegisterProjectEvent(final IArchiveModelRootNode newRoot) {
+ fireRegistrationEvent(null, newRoot, IArchiveNodeDelta.NODE_REGISTERED);
+ }
+
+ protected void fireUnregisterProjectEvent(final IArchiveModelRootNode oldRoot) {
+ fireRegistrationEvent(oldRoot, null, IArchiveNodeDelta.NODE_UNREGISTERED);
+ }
+
+ protected void fireRegistrationEvent(final IArchiveModelRootNode oldRoot, final IArchiveModelRootNode newRoot, final int type) {
+ IArchiveNodeDelta delta = new IArchiveNodeDelta() {
+ public IArchiveNodeDelta[] getAddedChildrenDeltas() {return null;}
+ public IArchiveNodeDelta[] getAllAffectedChildren() {return null;}
+ public INodeDelta getAttributeDelta(String key) {return null;}
+ public String[] getAttributesWithDeltas() {return null;}
+ public IArchiveNodeDelta[] getChangedDescendentDeltas() {return null;}
+ public int getKind() {return type;}
+ public IArchiveNode getPostNode() {return newRoot;}
+ public IArchiveNode getPreNode() { return oldRoot; }
+ public String[] getPropertiesWithDeltas() {return null;}
+ public INodeDelta getPropertyDelta(String key) {return null;}
+ public IArchiveNodeDelta[] getRemovedChildrenDeltas() {return null;}
+ };
+ EventManager.fireDelta(delta);
+ }
+}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java 2008-05-17 02:28:45 UTC (rev 8170)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java 2008-05-17 02:30:22 UTC (rev 8171)
@@ -1,56 +1,58 @@
-/**
- * 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.archives.core.model;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
-
-
-/**
- * Manages Archive Model Listeners, build and model changes, for changes
- * in the model
- * @author rstryker
- *
- */
-public interface IArchiveModel {
- public static final String DEFAULT_PACKAGES_FILE = ".packages";
-
- public boolean isProjectRegistered(IPath projectPath);
- public void save(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
- public void save(IArchiveModelRootNode modelNode, IProgressMonitor monitor) throws ArchivesModelException;
- public IArchiveModelRootNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
- public IArchiveModelRootNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException;
- public void registerProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
- public void unregisterProject(IPath projectPath, IProgressMonitor monitor);
- public void unregisterProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
- public IArchiveModelRootNode getRoot(IPath project);
- public IArchiveModelRootNode[] getModelNodes();
- public boolean accept(IArchiveNodeVisitor visitor);
-
- public void addBuildListener(IArchiveBuildListener listener);
- public void removeBuildListener(IArchiveBuildListener listener);
- public IArchiveBuildListener[] getBuildListeners();
- public void addModelListener(IArchiveModelListener listener);
- public void removeModelListener(IArchiveModelListener listener);
- public IArchiveModelListener[] getModelListeners();
-}
+/**
+ * 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.archives.core.model;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+
+
+/**
+ * Manages Archive Model Listeners, build and model changes, for changes
+ * in the model
+ * @author rstryker
+ *
+ */
+public interface IArchiveModel {
+ public static final String DEFAULT_PACKAGES_FILE = ".packages";
+
+ public boolean isProjectRegistered(IPath projectPath);
+ public void save(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
+ public void save(IArchiveModelRootNode modelNode, IProgressMonitor monitor) throws ArchivesModelException;
+ public IArchiveModelRootNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
+ public IArchiveModelRootNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException;
+ public void registerProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
+ public void unregisterProject(IPath projectPath, IProgressMonitor monitor);
+ public void unregisterProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
+ public boolean canReregister(IPath projectPath);
+ public boolean canReregister(IPath projectPath, String file);
+ public IArchiveModelRootNode getRoot(IPath project);
+ public IArchiveModelRootNode[] getModelNodes();
+ public boolean accept(IArchiveNodeVisitor visitor);
+
+ public void addBuildListener(IArchiveBuildListener listener);
+ public void removeBuildListener(IArchiveBuildListener listener);
+ public IArchiveBuildListener[] getBuildListeners();
+ public void addModelListener(IArchiveModelListener listener);
+ public void removeModelListener(IArchiveModelListener listener);
+ public IArchiveModelListener[] getModelListeners();
+}
17 years, 11 months
JBoss Tools SVN: r8170 - branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-05-16 22:28:45 -0400 (Fri, 16 May 2008)
New Revision: 8170
Modified:
branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java
Log:
JBIDE-2211 - number of files changed in event log
Modified: branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
--- branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-05-17 02:22:23 UTC (rev 8169)
+++ branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-05-17 02:28:45 UTC (rev 8170)
@@ -156,6 +156,14 @@
return archivesRoot.containsKey(projectPath);
}
+ public boolean canReregister(IPath projectPath) {
+ return canReregister(projectPath, DEFAULT_PACKAGES_FILE);
+ }
+
+ public boolean canReregister(IPath projectPath, String file) {
+ return projectPath.append(file).toFile().exists();
+ }
+
public IArchiveModelRootNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
return registerProject(projectPath, DEFAULT_PACKAGES_FILE, monitor);
}
Modified: branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java
===================================================================
--- branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java 2008-05-17 02:22:23 UTC (rev 8169)
+++ branches/jbosstools-2.1.x/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java 2008-05-17 02:28:45 UTC (rev 8170)
@@ -43,6 +43,8 @@
public void registerProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
public void unregisterProject(IPath projectPath, IProgressMonitor monitor);
public void unregisterProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
+ public boolean canReregister(IPath projectPath);
+ public boolean canReregister(IPath projectPath, String file);
public IArchiveModelRootNode getRoot(IPath project);
public IArchiveModelRootNode[] getModelNodes();
public boolean accept(IArchiveNodeVisitor visitor);
17 years, 11 months
JBoss Tools SVN: r8169 - in branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core: publishers and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-05-16 22:22:23 -0400 (Fri, 16 May 2008)
New Revision: 8169
Modified:
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
Log:
JBIDE-2211 - number of fiels changed in event log
Modified: branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
===================================================================
--- branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-05-16 23:00:31 UTC (rev 8168)
+++ branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-05-17 02:22:23 UTC (rev 8169)
@@ -72,11 +72,19 @@
int size = projects2.length;
for (int i = 0; i < size; i++) {
if (projects2[i].isAccessible()) {
- try {
- createModules(projects2[i]);
- } catch(ArchivesModelException ame) {
- IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
- JBossServerCorePlugin.getDefault().getLog().log(status);
+
+ if( !ArchivesModel.instance().isProjectRegistered(projects2[i].getLocation())) {
+ if( ArchivesModel.instance().canReregister(projects2[i].getLocation()))
+ // registration should also add this to the factory manually, so do not create the module
+ ArchivesModel.instance().registerProject(projects2[i].getLocation(), new NullProgressMonitor());
+ } else {
+ try {
+ // project is already registered. create the module
+ createModules(projects2[i]);
+ } catch(ArchivesModelException ame) {
+ IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
+ JBossServerCorePlugin.getDefault().getLog().log(status);
+ }
}
}
}
@@ -85,13 +93,9 @@
}
protected void createModules(IProject project) throws ArchivesModelException {
- IArchive[] packs = ModelUtil.getProjectArchives(project.getLocation());
- if( packs != null && packs.length > 0 ) {
+ IArchive[] packages = ModelUtil.getProjectArchives(project.getLocation());
+ if( packages != null && packages.length > 0 ) {
IModule module;
- if( !ArchivesModel.instance().isProjectRegistered(project.getLocation())) {
- ArchivesModel.instance().registerProject(project.getLocation(), new NullProgressMonitor());
- }
- IArchive[] packages = ModelUtil.getProjectArchives(project.getLocation());
boolean requiresSave = ensureArchivesHaveIDs(project, packages);
ArrayList<IModule> mods = new ArrayList<IModule>();
for( int i = 0; i < packages.length; i++ ) {
@@ -103,13 +107,14 @@
mods.add(module);
}
projectToModules.put(project.getLocation(), mods);
- if( requiresSave )
+ if( requiresSave ) {
try {
ArchivesModel.instance().save(project.getLocation(),
new NullProgressMonitor());
} catch( ArchivesModelException ame ) {
}
+ }
}
}
Modified: branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
===================================================================
--- branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2008-05-16 23:00:31 UTC (rev 8168)
+++ branches/jbosstools-2.1.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2008-05-17 02:22:23 UTC (rev 8169)
@@ -32,6 +32,8 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.model.IModuleFile;
+import org.eclipse.wst.server.core.model.IModuleFolder;
import org.eclipse.wst.server.core.model.IModuleResource;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
@@ -79,9 +81,9 @@
if( publishType == REMOVE_PUBLISH ) {
removeModule(module2, monitor);
} else if( publishType == FULL_PUBLISH ) {
+ publishModule(module2, false, monitor);
+ } else if( publishType == INCREMENTAL_PUBLISH ) {
publishModule(module2, true, monitor);
- } else if( publishType == INCREMENTAL_PUBLISH ) {
- publishModule(module2, false, monitor);
}
}catch(Exception e) {
IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error during publish", e);
@@ -117,9 +119,11 @@
PublisherFileUtilListener listener = new PublisherFileUtilListener(eventRoot);
if( incremental ) {
+ eventRoot.setProperty(PublisherEventLogger.CHANGED_FILE_COUNT, countChanges(delta));
publishFromDelta(module, destPathRoot, sourcePath.removeLastSegments(1), delta, listener);
} else {
// full publish, copy whole folder or file
+ eventRoot.setProperty(PublisherEventLogger.CHANGED_FILE_COUNT, countConcreteFiles(module));
FileUtil.fileSafeCopy(sourcePath.toFile(), destPathRoot.append(sourcePath.lastSegment()).toFile(), listener);
}
}
@@ -131,6 +135,44 @@
publishFromDeltaHandle(delta[i], destPathRoot, sourcePrefix, changedFiles, listener);
}
}
+
+ protected int countChanges(IModuleResourceDelta[] deltas) {
+ IModuleResource res;
+ int count = 0;
+ if( deltas == null ) return 0;
+ for( int i = 0; i < deltas.length; i++ ) {
+ res = deltas[i].getModuleResource();
+ if( res != null && res instanceof IModuleFile)
+ count++;
+ count += countChanges(deltas[i].getAffectedChildren());
+ }
+ return count;
+ }
+
+ protected int countConcreteFiles(IModule module) {
+ PackagedModuleDelegate delegate = (PackagedModuleDelegate)module.loadAdapter(PackagedModuleDelegate.class, new NullProgressMonitor());
+ try {
+ ArrayList list = new ArrayList();
+ countConcreteFiles(delegate.members()[0], list);
+ return list.size();
+ } catch( CoreException ce ) {
+
+ }
+ return -1;
+ }
+ protected void countConcreteFiles(IModuleResource mr, ArrayList list) {
+ if( mr instanceof IExtendedModuleResource) {
+ IExtendedModuleResource emr = ((IExtendedModuleResource)mr);
+ IPath p = emr.getConcreteDestFile();
+ if( mr instanceof IModuleFile && !list.contains(p)) list.add(p);
+ if( mr instanceof IModuleFolder) {
+ IModuleResource[] children = ((IModuleFolder)mr).members();
+ for( int i = 0; i < children.length; i++ )
+ countConcreteFiles(children[i], list);
+ }
+ }
+ }
+
protected void publishFromDeltaHandle(IModuleResourceDelta delta, IPath destRoot,
IPath sourcePrefix, ArrayList<IPath> changedFiles, PublisherFileUtilListener listener) {
switch( delta.getKind()) {
@@ -160,7 +202,7 @@
}
return;
} else {
- System.out.println("not an extended module resource. need help here");
+ // TODO
return;
}
case IModuleResourceDelta.ADDED:
@@ -174,7 +216,7 @@
}
return;
} else {
- System.out.println("not an extended module resource. need help here");
+ // TODO
return;
}
case IModuleResourceDelta.CHANGED:
17 years, 11 months
JBoss Tools SVN: r8168 - in trunk/as/plugins/org.jboss.ide.eclipse.as.ui: jbossui/org/jboss/tools and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-05-16 19:00:31 -0400 (Fri, 16 May 2008)
New Revision: 8168
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
JBIDE-2217 - separating wst standard stuff into its own package... renamed to org.jboss.tools.as.wst.etc to please Maximus
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-05-16 22:53:25 UTC (rev 8167)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-05-16 23:00:31 UTC (rev 8168)
@@ -97,13 +97,13 @@
point="org.eclipse.ui.preferencePages">
<page
category="org.eclipse.wst.server.ui.preferencePage"
- class="org.jboss.tools.wst.server.ui.views.server.preferencepages.JBossServersPreferencePage"
+ class="org.jboss.tools.as.wst.server.ui.views.server.preferencepages.JBossServersPreferencePage"
id="org.jboss.ide.eclipse.as.ui.jbossServerPreferencePage"
name="JBoss Servers"/>
<page
category="org.eclipse.wst.server.ui.preferencePage"
- class="org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewPreferencePage"
+ class="org.jboss.tools.as.wst.server.ui.views.server.preferencepages.ViewPreferencePage"
id="org.jboss.ide.eclipse.as.ui.jbossServerViewPrefPage"
name="JBoss Server View"/>
</extension>
@@ -129,7 +129,7 @@
<view
allowMultiple="false"
category="org.eclipse.wst.server.ui"
- class="org.jboss.tools.wst.server.ui.views.server.JBossServerView"
+ class="org.jboss.tools.as.wst.server.ui.views.server.JBossServerView"
icon="icons/jboss.gif"
id="org.jboss.ide.eclipse.as.ui.views.JBossServerView"
name="JBoss Server View"/>
@@ -353,15 +353,15 @@
<extension point="org.eclipse.ui.actionSets">
<actionSet description="%actionSets.serverActions.description" id="org.jboss.tools.jst.web.ui.server.actionSet" label="%actionSets.serverActions.label" visible="true">
- <action class="org.jboss.tools.wst.server.ui.action.SelectServerActionDelegate" icon="icons/actions/xpl/server.gif" id="org.jboss.tools.jst.web.ui.action.server.SelectServerActionDelegate" label="label1" style="pulldown" toolbarPath="Normal/SelectServer" tooltip="%actionSets.serverActions.selectServer.label">
+ <action class="org.jboss.tools.as.wst.server.ui.action.SelectServerActionDelegate" icon="icons/actions/xpl/server.gif" id="org.jboss.tools.jst.web.ui.action.server.SelectServerActionDelegate" label="label1" style="pulldown" toolbarPath="Normal/SelectServer" tooltip="%actionSets.serverActions.selectServer.label">
</action>
- <action class="org.jboss.tools.wst.server.ui.action.ChangeTimeStampActionDelegate" icon="icons/actions/webxml.gif" id="org.jboss.tools.jst.web.ui.action.server.ChangeTimeStampActionDelegate" label="label2" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.changeWebXmlTimeStamp.label">
+ <action class="org.jboss.tools.as.wst.server.ui.action.ChangeTimeStampActionDelegate" icon="icons/actions/webxml.gif" id="org.jboss.tools.jst.web.ui.action.server.ChangeTimeStampActionDelegate" label="label2" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.changeWebXmlTimeStamp.label">
</action>
- <action class="org.jboss.tools.wst.server.ui.action.StopServerActionDelegate" icon="icons/actions/stop.gif" id="org.jboss.tools.jst.web.ui.action.server.StopServerActionDelegate" label="label4" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.stopServer.label">
+ <action class="org.jboss.tools.as.wst.server.ui.action.StopServerActionDelegate" icon="icons/actions/stop.gif" id="org.jboss.tools.jst.web.ui.action.server.StopServerActionDelegate" label="label4" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.stopServer.label">
</action>
- <action class="org.jboss.tools.wst.server.ui.action.DebugServerActionDelegate" icon="icons/actions/xpl/debug.gif" id="org.jboss.tools.jst.web.ui.action.server.DebugServerActionDelegate" label="label6" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.startServer.label">
+ <action class="org.jboss.tools.as.wst.server.ui.action.DebugServerActionDelegate" icon="icons/actions/xpl/debug.gif" id="org.jboss.tools.jst.web.ui.action.server.DebugServerActionDelegate" label="label6" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.startServer.label">
</action>
- <action class="org.jboss.tools.wst.server.ui.action.RunServerActionDelegate" icon="icons/actions/start.gif" id="org.jboss.tools.jst.web.ui.action.server.RunServerActionDelegate" label="label7" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.startServer.label">
+ <action class="org.jboss.tools.as.wst.server.ui.action.RunServerActionDelegate" icon="icons/actions/start.gif" id="org.jboss.tools.jst.web.ui.action.server.RunServerActionDelegate" label="label7" toolbarPath="Normal/server" tooltip="%actionSets.serverActions.startServer.label">
</action>
</actionSet>
</extension>
17 years, 11 months
JBoss Tools SVN: r8165 - in trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui: views/server/extensions and 4 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-05-16 18:52:13 -0400 (Fri, 16 May 2008)
New Revision: 8165
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java
Log:
JBIDE-2217 - separating wst standard stuff into its own package... renamed to org.jboss.tools.as.wst.etc to please Maximus
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -32,7 +32,7 @@
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
-import org.jboss.tools.wst.server.ui.ExtensionManager;
+import org.jboss.tools.as.wst.server.ui.ExtensionManager;
import org.osgi.framework.BundleContext;
/**
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -34,10 +34,10 @@
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
-import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer;
-import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
-import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
-import org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
+import org.jboss.tools.as.wst.server.ui.views.server.ExtensionTableViewer;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.as.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.as.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -45,7 +45,7 @@
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.as.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -63,7 +63,7 @@
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.providers.descriptors.DescriptorXPathPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.views.server.util.ViewUtilityMethods;
-import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -64,7 +64,7 @@
import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
-import org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
+import org.jboss.tools.as.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -90,7 +90,7 @@
import org.jboss.ide.eclipse.as.ui.Messages;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.SimplePropertiesViewExtension;
-import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -36,8 +36,8 @@
import org.jboss.ide.eclipse.as.ui.Messages;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
-import org.jboss.tools.wst.server.ui.ToolsServerUICore;
-import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.as.wst.server.ui.ToolsServerUICore;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -61,7 +61,7 @@
import org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathFileResult.XPathResultNode;
import org.jboss.ide.eclipse.as.ui.Messages;
import org.jboss.ide.eclipse.as.ui.views.server.providers.DescriptorXPathViewProvider;
-import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.as.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -47,7 +47,7 @@
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXDomain;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.WrappedMBeanOperationInfo;
import org.jboss.ide.eclipse.as.ui.views.server.providers.jmx.JMXViewProvider.ErrorGroup;
-import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.as.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -42,8 +42,8 @@
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.util.ViewUtilityMethods;
-import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
-import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.as.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java 2008-05-16 22:51:48 UTC (rev 8164)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java 2008-05-16 22:52:13 UTC (rev 8165)
@@ -30,7 +30,7 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
/**
*
17 years, 11 months
JBoss Tools SVN: r8164 - in trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools: as and 7 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-05-16 18:51:48 -0400 (Fri, 16 May 2008)
New Revision: 8164
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ToolsServerUICore.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ExtensionTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/JBossServerView.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerExtensionFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/AbstractServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ChangeTimeStampActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerActionMessages.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManagerListener.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/StopServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
Log:
JBIDE-2217 - separating wst standard stuff into its own package... renamed to org.jboss.tools.as.wst.etc to please Maximus
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ExtensionManager.java (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ExtensionManager.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ExtensionManager.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,79 @@
+/**
+ * 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.tools.as.wst.server.ui;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+
+/**
+ *
+ * @author rob.stryker(a)jboss.com
+ */
+public class ExtensionManager {
+ private static ExtensionManager instance;
+ public static ExtensionManager getDefault() {
+ if( instance == null )
+ instance = new ExtensionManager();
+ return instance;
+ }
+
+ private ServerViewProvider[] serverViewExtensions;
+ public ServerViewProvider[] getAllServerViewProviders() {
+ if( serverViewExtensions == null )
+ loadAllServerViewProviders();
+ Arrays.sort(serverViewExtensions, new Comparator() {
+ public int compare(Object arg0, Object arg1) {
+ if( arg0 instanceof ServerViewProvider && arg1 instanceof ServerViewProvider) {
+ return ((ServerViewProvider)arg0).getWeight() - ((ServerViewProvider)arg1).getWeight();
+ }
+ return 0;
+ }
+ });
+ return serverViewExtensions;
+ }
+ private void loadAllServerViewProviders() {
+ // Create the extensions from the registry
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] elements = registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID, "ServerViewExtension");
+ ArrayList list = new ArrayList();
+ for( int i = 0; i < elements.length; i++ ) {
+ try {
+ list.add(new ServerViewProvider(elements[i]));
+ } catch(Exception e) {
+ String msg = "Server View Provider (" + elements[i].getAttribute(ServerViewProvider.ID_LABEL) + ") failed to load";
+ IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, msg, e);
+ JBossServerUIPlugin.getDefault().getLog().log(status);
+ }
+ }
+ serverViewExtensions = (ServerViewProvider[]) list.toArray(new ServerViewProvider[list.size()]);
+ }
+
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ToolsServerUICore.java (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ToolsServerUICore.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ToolsServerUICore.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,24 @@
+package org.jboss.tools.as.wst.server.ui;
+
+import java.util.ArrayList;
+
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+
+public class ToolsServerUICore {
+
+ public static ServerViewProvider[] getEnabledViewProviders(IServer server) {
+ ServerViewProvider[] serverViewExtensions = getAllServerViewProviders();
+ ArrayList<ServerViewProvider> list = new ArrayList<ServerViewProvider>();
+ for( int i = 0; i < serverViewExtensions.length; i++ ) {
+ if( serverViewExtensions[i].isEnabled() && serverViewExtensions[i].supports(server)) {
+ list.add(serverViewExtensions[i]);
+ }
+ }
+ return list.toArray(new ServerViewProvider[list.size()]);
+ }
+
+ public static ServerViewProvider[] getAllServerViewProviders() {
+ return ExtensionManager.getDefault().getAllServerViewProviders();
+ }
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action (from rev 8072, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action)
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/AbstractServerActionDelegate.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/AbstractServerActionDelegate.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/AbstractServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import java.util.HashMap;
import java.util.Map;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ChangeTimeStampActionDelegate.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ChangeTimeStampActionDelegate.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ChangeTimeStampActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import java.util.ArrayList;
import java.util.List;
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/DebugServerActionDelegate.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
-
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IServer;
-
-public class DebugServerActionDelegate extends RunServerActionDelegate {
-
- protected String getLaunchMode() {
- return ILaunchManager.DEBUG_MODE;
- }
-
-
- protected String computeToolTip() {
- IServer selected = ServerManager.getInstance().getSelectedServer();
- String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
- if( selected.getServerState() == IServer.STATE_STARTED)
- return NLS.bind(ServerActionMessages.RESTART_IN_DEBUG_MODE, name);
- return NLS.bind(ServerActionMessages.START_IN_DEBUG_MODE, name); //$NON-NLS-2$
- }
-
-}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java (from rev 8154, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/DebugServerActionDelegate.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.as.wst.server.ui.action;
+
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.server.core.IServer;
+
+public class DebugServerActionDelegate extends RunServerActionDelegate {
+
+ protected String getLaunchMode() {
+ return ILaunchManager.DEBUG_MODE;
+ }
+
+
+ protected String computeToolTip() {
+ IServer selected = ServerManager.getInstance().getSelectedServer();
+ String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
+ if( selected != null && selected.getServerState() == IServer.STATE_STARTED)
+ return NLS.bind(ServerActionMessages.RESTART_IN_DEBUG_MODE, name);
+ return NLS.bind(ServerActionMessages.START_IN_DEBUG_MODE, name); //$NON-NLS-2$
+ }
+
+}
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/RunServerActionDelegate.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
-
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
-
-public class RunServerActionDelegate extends AbstractServerActionDelegate {
-
- private StartAction delegate;
- public void init(IWorkbenchWindow window) {
- super.init(window);
- update();
- }
-
- protected void doRun() {
- IServer server = ServerManager.getInstance().getSelectedServer();
- if(server == null)
- return;
- delegate = new StartAction(window.getShell(), getSelectionProvider(), getLaunchMode());
- if( delegate.accept(server))
- delegate.perform(server);
- updateAll();
- }
-
- protected String getLaunchMode() {
- return ILaunchManager.RUN_MODE;
- }
-
- protected boolean isActionEnabled() {
- IServer selected = ServerManager.getInstance().getSelectedServer();
- return (selected != null
- && selected.getServerState() != IServer.STATE_STARTING);
- }
-
- protected String computeToolTip() {
- IServer selected = ServerManager.getInstance().getSelectedServer();
- String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
- if( selected.getServerState() == IServer.STATE_STARTED)
- return NLS.bind(ServerActionMessages.RESTART_IN_RUN_MODE, name);
- return NLS.bind(ServerActionMessages.START_IN_RUN_MODE, name);
- }
-}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java (from rev 8154, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/RunServerActionDelegate.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.as.wst.server.ui.action;
+
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
+
+public class RunServerActionDelegate extends AbstractServerActionDelegate {
+
+ private StartAction delegate;
+ public void init(IWorkbenchWindow window) {
+ super.init(window);
+ update();
+ }
+
+ protected void doRun() {
+ IServer server = ServerManager.getInstance().getSelectedServer();
+ if(server == null)
+ return;
+ delegate = new StartAction(window.getShell(), getSelectionProvider(), getLaunchMode());
+ if( delegate.accept(server))
+ delegate.perform(server);
+ updateAll();
+ }
+
+ protected String getLaunchMode() {
+ return ILaunchManager.RUN_MODE;
+ }
+
+ protected boolean isActionEnabled() {
+ IServer selected = ServerManager.getInstance().getSelectedServer();
+ return (selected != null
+ && selected.getServerState() != IServer.STATE_STARTING);
+ }
+
+ protected String computeToolTip() {
+ IServer selected = ServerManager.getInstance().getSelectedServer();
+ String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
+ if( selected != null && selected.getServerState() == IServer.STATE_STARTED)
+ return NLS.bind(ServerActionMessages.RESTART_IN_RUN_MODE, name);
+ return NLS.bind(ServerActionMessages.START_IN_RUN_MODE, name);
+ }
+}
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/SelectServerActionDelegate.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.TaskModel;
-import org.eclipse.wst.server.ui.internal.ImageResource;
-import org.eclipse.wst.server.ui.internal.wizard.NewServerWizard;
-import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
-
-
-public class SelectServerActionDelegate extends AbstractServerActionDelegate
- implements IWorkbenchWindowPulldownDelegate {
-
- private ArrayList images = new ArrayList();
-
- protected void safeSelectionChanged(IAction action, ISelection selection) {
- this.action = action;
- update();
- }
-
- protected void update() {
- if (action == null) return;
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- update0();
- }
- });
- }
-
- private void update0() {
- if(action == null) return;
- IServer server = ServerManager.getInstance().getSelectedServer();
- ImageDescriptor id = ImageResource.getImageDescriptor(server.getServerType().getId());
- action.setImageDescriptor(id);
- action.setText(null);
- action.setToolTipText(ServerActionMessages.SELECT_A_SERVER);
- }
-
- protected void doRun() {
- getMenu(window.getShell()).setVisible(true);
- }
-
- public void dispose() {
- action = null;
- }
-
- public Menu getMenu(Control parent) {
- cleanImages();
-
- Menu menu = new Menu(parent);
- IServer[] servers = ServerManager.getInstance().getServers();
- for (int i = 0; i < servers.length; i++) {
- createServerItem(menu, servers[i]);
- }
- new MenuItem(menu, SWT.SEPARATOR);
- createNewServerItem(menu);
- return menu;
- }
-
- // prevent memory leaks
- protected void cleanImages() {
- Iterator<Image> i = images.iterator();
- while(i.hasNext())
- ((Image)i.next()).dispose();
- images.clear();
- }
-
- private void createServerItem(Menu menu, final IServer server) {
- MenuItem item = new MenuItem(menu, SWT.RADIO);
- if(server == ServerManager.getInstance().getSelectedServer()) {
- item.setSelection(true);
- }
-
- item.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- ServerManager.getInstance().setSelectedServer(server.getId());
- update();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
- });
- item.setText(server.getName());
- ImageDescriptor id = ImageResource.getImageDescriptor(server.getServerType().getId());
- Image i = id.createImage();
- images.add(i);
- item.setImage(i);
- }
-
- private void createNewServerItem(Menu menu) {
- MenuItem item = new MenuItem(menu, SWT.PUSH);
- item.setText("New server...");
- item.setImage(JBossServerUISharedImages.getImage(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
- item.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- newServer();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- newServer();
- widgetSelected(e);
- }
- });
- }
-
- private void newServer() {
- NewServerWizard wizard = new NewServerWizard();
- WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
- if (dialog.open() != Window.CANCEL) {
- IServer server = (IServer)wizard.getRootFragment().getTaskModel().getObject(TaskModel.TASK_SERVER);
- if(server != null) {
- ServerManager.getInstance().setSelectedServer(server.getId());
- update();
- }
- }
- }
-}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java (from rev 8154, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/SelectServerActionDelegate.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.as.wst.server.ui.action;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.TaskModel;
+import org.eclipse.wst.server.ui.internal.ImageResource;
+import org.eclipse.wst.server.ui.internal.wizard.NewServerWizard;
+import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+
+
+public class SelectServerActionDelegate extends AbstractServerActionDelegate
+ implements IWorkbenchWindowPulldownDelegate {
+
+ private ArrayList images = new ArrayList();
+
+ protected void safeSelectionChanged(IAction action, ISelection selection) {
+ this.action = action;
+ update();
+ }
+
+ protected void update() {
+ if (action == null) return;
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ update0();
+ }
+ });
+ }
+
+ private void update0() {
+ if(action == null) return;
+ IServer server = ServerManager.getInstance().getSelectedServer();
+ if( server != null ) {
+ ImageDescriptor id = ImageResource.getImageDescriptor(server.getServerType().getId());
+ action.setImageDescriptor(id);
+ }
+ action.setText(null);
+ action.setToolTipText(ServerActionMessages.SELECT_A_SERVER);
+ }
+
+ protected void doRun() {
+ getMenu(window.getShell()).setVisible(true);
+ }
+
+ public void dispose() {
+ action = null;
+ }
+
+ public Menu getMenu(Control parent) {
+ cleanImages();
+
+ Menu menu = new Menu(parent);
+ IServer[] servers = ServerManager.getInstance().getServers();
+ for (int i = 0; i < servers.length; i++) {
+ createServerItem(menu, servers[i]);
+ }
+ new MenuItem(menu, SWT.SEPARATOR);
+ createNewServerItem(menu);
+ return menu;
+ }
+
+ // prevent memory leaks
+ protected void cleanImages() {
+ Iterator<Image> i = images.iterator();
+ while(i.hasNext())
+ ((Image)i.next()).dispose();
+ images.clear();
+ }
+
+ private void createServerItem(Menu menu, final IServer server) {
+ MenuItem item = new MenuItem(menu, SWT.RADIO);
+ if(server == ServerManager.getInstance().getSelectedServer()) {
+ item.setSelection(true);
+ }
+
+ item.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ ServerManager.getInstance().setSelectedServer(server.getId());
+ update();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ });
+ item.setText(server.getName());
+ ImageDescriptor id = ImageResource.getImageDescriptor(server.getServerType().getId());
+ Image i = id.createImage();
+ images.add(i);
+ item.setImage(i);
+ }
+
+ private void createNewServerItem(Menu menu) {
+ MenuItem item = new MenuItem(menu, SWT.PUSH);
+ item.setText("New server...");
+ item.setImage(JBossServerUISharedImages.getImage(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
+ item.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ newServer();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ newServer();
+ widgetSelected(e);
+ }
+ });
+ }
+
+ private void newServer() {
+ NewServerWizard wizard = new NewServerWizard();
+ WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
+ if (dialog.open() != Window.CANCEL) {
+ IServer server = (IServer)wizard.getRootFragment().getTaskModel().getObject(TaskModel.TASK_SERVER);
+ if(server != null) {
+ ServerManager.getInstance().setSelectedServer(server.getId());
+ update();
+ }
+ }
+ }
+}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerActionMessages.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ServerActionMessages.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerActionMessages.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -1,9 +1,9 @@
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import org.eclipse.osgi.util.NLS;
public class ServerActionMessages extends NLS {
- private static final String BUNDLE_NAME = "org.jboss.tools.wst.server.ui.action.messages";
+ private static final String BUNDLE_NAME = "org.jboss.tools.as.wst.server.ui.action.messages";
static {
// load message values from bundle file
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManager.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ServerManager.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManager.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import java.util.ArrayList;
import java.util.List;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManagerListener.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ServerManagerListener.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManagerListener.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
public interface ServerManagerListener {
public void serverManagerChanged();
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/StopServerActionDelegate.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/StopServerActionDelegate.java 2008-05-14 02:47:59 UTC (rev 8072)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/StopServerActionDelegate.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.IWorkbenchWindow;
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ExtensionTableViewer.java (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ExtensionTableViewer.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ExtensionTableViewer.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,491 @@
+/**
+ * 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.tools.as.wst.server.ui.views.server;
+
+import java.util.ArrayList;
+import java.util.Properties;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelection;
+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.swt.widgets.Widget;
+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.IServerLifecycleListener;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.ServerUICore;
+import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
+import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.Messages;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.SimplePropertiesPropertySheetPage;
+import org.jboss.tools.as.wst.server.ui.ToolsServerUICore;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ExtensionTableViewer extends TreeViewer {
+
+ protected TableViewerPropertySheet propertySheet;
+ protected Action disableCategoryAction, refreshAction;
+ protected boolean suppressingRefresh = false;
+ public ExtensionTableViewer(Tree tree) {
+ super(tree);
+ setContentProvider(new ContentProviderDelegator());
+ setLabelProvider(new LabelProviderDelegator());
+ propertySheet = new TableViewerPropertySheet();
+ createActions();
+
+ UnitedServerListenerManager.getDefault().addListener(new UnitedServerListener() {
+ public void serverRemoved(IServer server) {
+ final IServer server2 = server;
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ Object o = getInput();
+ if( server2.equals(o)) {
+ setInput(null);
+ }
+ }
+ });
+ }
+ });
+ }
+
+ protected void createActions() {
+ 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);
+ refreshAction = new Action() {
+ public void run() {
+ Object o1 = ((IStructuredSelection)getSelection()).getFirstElement();
+ if( o1 != null ) {
+ // tell the delegate to refresh its model for the selected item, before we refresh the viewer
+ ServerViewProvider provider = o1 instanceof ServerViewProvider ? (ServerViewProvider)o1 : ((ContentWrapper)o1).getProvider();
+ if( provider != null )
+ provider.getDelegate().refreshModel(o1);
+ }
+ Object el = getSelectedElement();
+ if( el instanceof ServerViewProvider )
+ refresh(el);
+ else
+ refresh(((IStructuredSelection)getSelection()).getFirstElement());
+ }
+ };
+ refreshAction.setText("Refresh Item");
+ }
+
+ 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 ) {
+ if( ((ContentWrapper)other).getElement() == null )
+ return o == null;
+ return ((ContentWrapper)other).getElement().equals(o);
+ }
+ return false;
+ }
+
+ public int hashCode() {
+ if( o == null ) return super.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();
+ return ret;
+ }
+ if( obj instanceof ServerViewProvider) {
+ return ((ServerViewProvider)obj).getName();
+ }
+
+ if( obj instanceof ContentWrapper ) {
+ ContentWrapper wrapper = (ContentWrapper)obj;
+ return wrapper.getProvider().getDelegate().getLabelProvider().getText(wrapper.getElement());
+ }
+ return obj.toString();
+ }
+ public Image getImage(Object obj) {
+ if( obj instanceof JBossServer ) {
+ return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer());
+ }
+ 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;
+ }
+ }
+ protected class ContentProviderDelegator implements ITreeContentProvider {
+
+ public ContentProviderDelegator() {
+ }
+
+ public ContentWrapper[] wrap( Object[] elements, ServerViewProvider provider ) {
+ if( elements == null ) return new ContentWrapper[0];
+
+ 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) {
+ if( inputElement == null ) return new Object[0];
+ IServer tmp = (IServer)getInput();
+ if( tmp == null )
+ return new Object[0];
+ return ToolsServerUICore.getEnabledViewProviders(tmp);
+ }
+
+ public Object[] getChildren(Object parentElement) {
+ if( parentElement == null ) return new Object[0];
+
+ if( parentElement instanceof ServerViewProvider) {
+ 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 = parentWrapper.getProvider().getDelegate().getContentProvider().getChildren(parentWrapper.getElement());
+ } catch( Exception e) {
+ JBossServerUIPlugin.log("Error finding children of " + parentElement, e);
+ }
+ if( o == null )
+ return new Object[0];
+ return wrap(o, parentWrapper.getProvider());
+ }
+ return new Object[0];
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ if( element instanceof ServerViewProvider )
+ return ((ServerViewProvider)element).getDelegate().getContentProvider().hasChildren(element);
+ if( element instanceof ContentWrapper ) {
+ ContentWrapper parentWrapper = (ContentWrapper)element;
+ return parentWrapper.getProvider().getDelegate().getContentProvider().hasChildren(parentWrapper.getElement());
+ }
+ return getChildren(element).length > 0 ? true : false;
+ }
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ ServerViewProvider[] providers = ToolsServerUICore.
+ getEnabledViewProviders(newInput instanceof IServer ? (IServer)newInput : null);
+ for( int i = 0; i < providers.length; i++ ) {
+ try {
+ providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput, newInput);
+ } catch( Exception e) {
+ JBossServerUIPlugin.log("Error changing input to " + newInput, e);
+ }
+ }
+ }
+
+ }
+
+ public Object getRawElement(Object o) {
+ if( o instanceof ContentWrapper )
+ return ((ContentWrapper)o).getElement();
+ return o;
+ }
+
+ public Object[] getRawElements(IStructuredSelection selection) {
+ ArrayList<Object> tmp = new ArrayList<Object>();
+ Object[] obj = selection.toArray();
+ Object tmp2;
+ for( int i = 0; i < obj.length; i++ ) {
+ tmp2 = getRawElement(obj[i]);
+ if( tmp2 != null ) tmp.add(tmp2);
+ }
+ return (Object[]) tmp.toArray(new Object[tmp.size()]);
+ }
+
+ public ServerViewProvider getParentViewProvider(Object o) {
+ if( o instanceof ContentWrapper )
+ return ((ContentWrapper)o).getProvider();
+ return null;
+ }
+
+ public Object getSelectedElement() {
+ ISelection sel = getSelection();
+ if( sel instanceof IStructuredSelection ) {
+ Object o = ((IStructuredSelection)sel).getFirstElement();
+ if( o != null && o instanceof ContentWrapper ) {
+ o = ((ContentWrapper)o).getElement();
+ }
+ return o;
+ }
+ return null;
+ }
+
+ protected void fillSelectedContextMenu(Shell shell, IMenuManager mgr) {
+ ISelection sel = getSelection();
+ if (sel instanceof IStructuredSelection) {
+ ServerViewProvider provider = findProvider((IStructuredSelection)sel);
+ if (provider != null) {
+ Object[] selected = getRawElements((IStructuredSelection)sel);
+ provider.getDelegate().fillContextMenu(shell, mgr, selected);
+ }
+ }
+ }
+
+ protected ServerViewProvider findProvider(IStructuredSelection sel) {
+ Object[] selected = sel.toArray();
+ ServerViewProvider provider = null;
+ ServerViewProvider tmpProvider;
+ for( int i = 0; i < selected.length; i++ ) {
+ if( selected[i] instanceof ServerViewProvider ) {
+ tmpProvider = (ServerViewProvider)selected[i];
+ } else {
+ tmpProvider = getParentViewProvider(selected[i]);
+ }
+ if( provider == null )
+ provider = tmpProvider;
+ else if( tmpProvider != provider )
+ return null;
+ }
+ return provider;
+ }
+
+ protected void fillJBContextMenu(Shell shell, IMenuManager menu) {
+ Object selected = getSelectedElement();
+ menu.add(refreshAction);
+ if( selected instanceof ServerViewProvider ) {
+ menu.add(disableCategoryAction);
+ }
+
+ menu.add(new Separator());
+ }
+
+ public IPropertySheetPage getPropertySheet() {
+ return propertySheet;
+ }
+
+ public class TableViewerPropertySheet implements IPropertySheetPage {
+
+ private PageBook book;
+ private ArrayList<ServerViewProvider> addedControls = new ArrayList<ServerViewProvider>();
+ private SimplePropertiesPropertySheetPage topLevelPropertiesPage;
+
+ public void createControl(Composite parent) {
+ topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new TopLevelProperties());
+ book = new PageBook(parent, SWT.NONE);
+ addedControls.clear();
+ 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).getProvider());
+ } else /*if( selected instanceof ServerViewProvider ) {
+ page = getDelegatePage((ServerViewProvider)selected);
+ } else if( page == null ) */ {
+ page = topLevelPropertiesPage;
+ }
+ if( page != null ) {
+ page.selectionChanged(part, sel);
+ book.showPage(page.getControl());
+ }
+ }
+ }
+ private IPropertySheetPage getDelegatePage(ServerViewProvider provider) {
+ IPropertySheetPage returnSheet = null;
+ returnSheet = provider.getDelegate().getPropertySheetPage();
+ if( !addedControls.contains(provider) && returnSheet != null) {
+ 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());
+ }
+ 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() {
+ // The Loner
+ propertySheet.dispose();
+
+ ServerViewProvider[] providers = ToolsServerUICore.getAllServerViewProviders();
+ for( int i = 0; i < providers.length; i++ ) {
+ providers[i].dispose();
+ }
+ }
+
+
+ public void suppressingRefresh(Runnable runnable) {
+ boolean currentVal = suppressingRefresh;
+ suppressingRefresh = true;
+ runnable.run();
+ suppressingRefresh = currentVal;
+ }
+
+ public void refresh() {
+ refresh(null);
+ }
+ public void refresh(final Object element) {
+ if(!suppressingRefresh) {
+ try {
+ super.refresh(element);
+ } catch( Exception e ) {
+ JBossServerUIPlugin.log("Error refreshing view. ", e);
+ }
+ }
+ }
+
+ public boolean elementInTree(Object element) {
+ Widget[] w = super.findItems(element);
+ return w != null && w.length > 0;
+ }
+
+
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/JBossServerView.java (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/JBossServerView.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/JBossServerView.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,192 @@
+/**
+ * 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.tools.as.wst.server.ui.views.server;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+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.widgets.Composite;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class JBossServerView extends ViewPart {
+
+ public static final String VIEW_ID = "org.jboss.ide.eclipse.as.ui.views.JBossServerView";
+
+ private static final String TAG_SASHFORM_HEIGHT = "sashformHeight";
+
+ public static JBossServerView instance;
+ private static ArrayList<ISelectionChangedListener> serverFrameListeners = new ArrayList<ISelectionChangedListener>();
+ private static ArrayList<ISelectionChangedListener> extensionFrameListeners = new ArrayList<ISelectionChangedListener>();
+
+ public static JBossServerView getDefault() {
+ return instance;
+ }
+
+ public static void addServerFrameListener(ISelectionChangedListener listener) {
+ if( !serverFrameListeners.contains(listener))
+ serverFrameListeners.add(listener);
+ if( getDefault() != null )
+ getDefault().getServerFrame().getViewer().addSelectionChangedListener(listener);
+ }
+ public static void addExtensionFrameListener(ISelectionChangedListener listener) {
+ if( !extensionFrameListeners.contains(listener))
+ extensionFrameListeners.add(listener);
+ if( getDefault() != null )
+ getDefault().getExtensionFrame().getViewer().addSelectionChangedListener(listener);
+ }
+
+ public static void removeServerFrameListener(ISelectionChangedListener listener) {
+ if( serverFrameListeners.contains(listener))
+ serverFrameListeners.remove(listener);
+ if( getDefault() != null )
+ getDefault().getServerFrame().getViewer().removeSelectionChangedListener(listener);
+ }
+ public static void removeExtensionFrameListener(ISelectionChangedListener listener) {
+ if( extensionFrameListeners.contains(listener))
+ extensionFrameListeners.remove(listener);
+ if( getDefault() != null )
+ getDefault().getExtensionFrame().getViewer().removeSelectionChangedListener(listener);
+ }
+
+ public static interface IServerViewFrame {
+ public IAction[] getActionBarActions();
+ public int getDefaultSize();
+ public void refresh();
+ }
+
+ public JBossServerView() {
+ super();
+ instance = this;
+ }
+
+ private SashForm form;
+ private int[] sashRows;
+ private IMemento memento;
+
+ private IServerViewFrame[] frames;
+ private ServerFrame serverFrame;
+ private ServerExtensionFrame extensionFrame;
+
+ public void init(IViewSite site, IMemento memento) throws PartInitException {
+ super.init(site, memento);
+ ServerUIPlugin.getPreferences().setShowOnActivity(false);
+ this.memento = memento;
+ int sum = 0;
+ sashRows = new int[2];
+ for (int i = 0; i < sashRows.length; i++) {
+ sashRows[i] = 50;
+ if (memento != null) {
+ Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i);
+ if (in != null && in.intValue() > 5)
+ sashRows[i] = in.intValue();
+ }
+ sum += sashRows[i];
+ }
+ }
+
+ public void saveState(IMemento memento) {
+ super.saveState(memento);
+ int[] weights = form.getWeights();
+ for (int i = 0; i < weights.length; i++) {
+ if (weights[i] != 0)
+ memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]);
+ }
+ }
+
+ public void createPartControl(Composite parent) {
+ form = new SashForm(parent, SWT.VERTICAL);
+ form.setBackground(new Color(parent.getDisplay(), 255, 255, 255));
+ form.setLayout(new FillLayout());
+
+
+ Composite topWrapper = new Composite(form, SWT.NONE);
+ topWrapper.setLayout(new FillLayout());
+ serverFrame = new ServerFrame(topWrapper, this);
+
+ Composite bottomWrapper = new Composite(form, SWT.NONE);
+ bottomWrapper.setLayout(new FillLayout());
+ extensionFrame = new ServerExtensionFrame(bottomWrapper, this);
+
+
+ frames = new IServerViewFrame[] { serverFrame, extensionFrame };
+
+ // add toolbar buttons
+ IContributionManager cm = getViewSite().getActionBars().getToolBarManager();
+ for( int i = 0; i < frames.length; i++ ) {
+ IAction[] actions = frames[i].getActionBarActions();
+ for (int j = 0; j < actions.length - 1; j++)
+ cm.add(actions[j]);
+ }
+
+ form.setWeights(sashRows);
+
+
+ // if the extensions have already been created, add those listeners now.
+ Iterator<ISelectionChangedListener> k;
+ for(k = serverFrameListeners.iterator(); k.hasNext();)
+ serverFrame.getViewer().addSelectionChangedListener(k.next());
+ for(k = extensionFrameListeners.iterator(); k.hasNext();)
+ extensionFrame.getViewer().addSelectionChangedListener(k.next());
+ }
+
+ public void refreshAll() {
+ for( int i = 0; i < frames.length; i++ ) {
+ frames[i].refresh();
+ }
+ }
+
+ public ServerFrame getServerFrame() { return this.serverFrame; }
+ public ServerExtensionFrame getExtensionFrame() { return this.extensionFrame; }
+
+ public void setFocus() {
+ getExtensionFrame().getViewer().getTree().setFocus();
+ }
+
+ public IServer getSelectedServer() {
+ return serverFrame == null ? null : serverFrame.getSelectedServer();
+ }
+
+ public Object getAdapter(Class adaptor) {
+ if( adaptor == IPropertySheetPage.class) {
+ return extensionFrame.getViewer().getPropertySheet();
+ }
+ return super.getAdapter(adaptor);
+ }
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerExtensionFrame.java (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerExtensionFrame.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerExtensionFrame.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,122 @@
+/**
+ * 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.tools.as.wst.server.ui.views.server;
+
+import org.eclipse.jface.action.IAction;
+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.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView.IServerViewFrame;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerExtensionFrame extends Composite implements IServerViewFrame {
+
+ private Tree jbTreeTable;
+ private ExtensionTableViewer jbViewer;
+ private JBossServerView view;
+ public ServerExtensionFrame(Composite parent, JBossServerView view) {
+ super(parent, SWT.NONE);
+ this.view = view;
+ setLayout(new FillLayout());
+ jbTreeTable = new Tree(this, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+ jbViewer = new ExtensionTableViewer(jbTreeTable);
+ view.getSite().setSelectionProvider(jbViewer);
+ addListeners();
+ doMenuStuff(parent);
+ }
+
+ 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.fillSelectedContextMenu(shell, mgr);
+ mgr.add(new Separator());
+ jbViewer.fillJBContextMenu(shell, mgr);
+ }
+ });
+ Menu menu = menuManager.createContextMenu(parent);
+ jbTreeTable.setMenu(menu);
+ }
+
+ public ExtensionTableViewer getViewer() {
+ return jbViewer;
+ }
+
+ public void refresh() {
+ jbViewer.refresh();
+ }
+
+ public void addListeners() {
+
+ /*
+ * Handles the selection of the server viewer which is embedded in my sashform
+ */
+ view.getServerFrame().getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ Object selection = ((TreeSelection)event.getSelection()).getFirstElement();
+ Object server = selection;
+ if( selection instanceof ModuleServer ) {
+ server = ((ModuleServer)selection).server;
+ }
+
+ if( selection == null ) return;
+ if( server != jbViewer.getInput()) {
+ // find the newest copy of the server
+ IServer tmp = ServerCore.findServer(((IServer)server).getId());
+ jbViewer.setInput(tmp);
+ } else {
+ jbViewer.refresh();
+ }
+ }
+
+ });
+ }
+
+
+ public IAction[] getActionBarActions() {
+ return new IAction[] {}; // none
+ }
+
+ public int getDefaultSize() {
+ return 0;
+ }
+ }
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerFrame.java (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerFrame.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerFrame.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,345 @@
+/**
+ * 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.tools.as.wst.server.ui.views.server;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionManager;
+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.bindings.TriggerSequence;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+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.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.keys.IBindingService;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.core.internal.Trace;
+import org.eclipse.wst.server.ui.internal.ContextIds;
+import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
+import org.eclipse.wst.server.ui.internal.actions.NewServerWizardAction;
+import org.eclipse.wst.server.ui.internal.view.servers.CopyAction;
+import org.eclipse.wst.server.ui.internal.view.servers.DeleteAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ModuleSloshAction;
+import org.eclipse.wst.server.ui.internal.view.servers.OpenAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PasteAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PropertiesAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PublishAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PublishCleanAction;
+import org.eclipse.wst.server.ui.internal.view.servers.RenameAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ShowInConsoleAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ShowInDebugAction;
+import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
+import org.eclipse.wst.server.ui.internal.view.servers.StopAction;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView.IServerViewFrame;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerFrame extends Composite implements IServerViewFrame {
+
+ protected Action[] actions;
+ protected IWorkbenchPartSite site;
+ protected IViewSite viewSite;
+ protected Tree treeTable;
+ protected ServerTableViewer tableViewer;
+
+ // custom
+ protected Action editLaunchConfigAction, twiddleAction, newServerAction;
+
+ // wtp
+ protected Action actionModifyModules;
+ protected Action openAction, showInConsoleAction, showInDebugAction, propertiesAction;
+ protected Action copyAction, pasteAction, deleteAction, renameAction;
+
+ public ServerFrame(Composite parent, JBossServerView view) {
+ super(parent, SWT.BORDER);
+ setLayout(new FillLayout());
+ this.site = view.getSite();
+ this.viewSite = view.getViewSite();
+
+
+ int cols[] = new int[] {150, 100, 50};
+
+ treeTable = new Tree(this, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE);
+ treeTable.setHeaderVisible(true);
+ treeTable.setLinesVisible(false);
+ treeTable.setFont(parent.getFont());
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(treeTable, ContextIds.VIEW_SERVERS);
+
+ // add columns
+ TreeColumn column = new TreeColumn(treeTable, SWT.SINGLE);
+ column.setText(Messages.viewServer);
+ column.setWidth(cols[0]);
+
+ TreeColumn column2 = new TreeColumn(treeTable, SWT.SINGLE);
+ column2.setText(Messages.viewState);
+ column2.setWidth(cols[1]);
+
+ TreeColumn column3 = new TreeColumn(treeTable, SWT.SINGLE);
+ column3.setText(Messages.viewStatus);
+ column3.setWidth(cols[2]);
+
+ tableViewer = new ServerTableViewer(viewSite, treeTable);
+ initializeActions(tableViewer);
+
+ treeTable.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ try {
+ } catch (Exception e) {
+ viewSite.getActionBars().getStatusLineManager().setMessage(null, "");
+ }
+ }
+ public void widgetDefaultSelected(SelectionEvent event) {
+ try {
+ TreeItem item = treeTable.getSelection()[0];
+ Object data = item.getData();
+ if (!(data instanceof IServer))
+ return;
+ IServer server = (IServer) data;
+ ServerUIPlugin.editServer(server);
+ } catch (Exception e) {
+ Trace.trace(Trace.SEVERE, "Could not open server", e);
+ }
+ }
+ });
+
+ MenuManager menuManager = new MenuManager("#PopupMenu");
+ menuManager.setRemoveAllWhenShown(true);
+ final Shell shell = treeTable.getShell();
+ menuManager.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager mgr) {
+ fillContextMenu(shell, mgr);
+ }
+ });
+ Menu menu = menuManager.createContextMenu(parent);
+ treeTable.setMenu(menu);
+ site.registerContextMenu(menuManager, tableViewer);
+ site.setSelectionProvider(tableViewer);
+ }
+
+ protected void fillContextMenu(Shell shell, IMenuManager menu) {
+ if( getSelectedServer() != null ) {
+ cloneFill(shell, menu);
+ } else {
+ menu.add(newServerAction);
+ }
+ }
+
+ protected void cloneFill(Shell shell, IMenuManager menu) {
+
+ /* Show in ... */
+ String text = Messages.actionShowIn;
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ final IBindingService bindingService = (IBindingService) workbench
+ .getAdapter(IBindingService.class);
+ final TriggerSequence[] activeBindings = bindingService
+ .getActiveBindingsFor("org.eclipse.ui.navigate.showInQuickMenu");
+ if (activeBindings.length > 0) {
+ text += "\t" + activeBindings[0].format();
+ }
+
+ menu.add(newServerAction);
+ menu.add(openAction);
+
+ MenuManager showInMenu = new MenuManager(text);
+ showInMenu.add(showInConsoleAction);
+ showInMenu.add(showInDebugAction);
+ menu.add(showInMenu);
+ menu.add(new Separator());
+
+ menu.add(copyAction);
+ menu.add(pasteAction);
+ menu.add(deleteAction);
+ menu.add(renameAction);
+
+ menu.add(new Separator());
+
+ // server actions
+ for (int i = 0; i < actions.length; i++)
+ menu.add(actions[i]);
+
+ menu.add(new Separator());
+// menu.add(actionModifyModules);
+
+ menu.add(twiddleAction);
+ menu.add(editLaunchConfigAction);
+ menu.add(actionModifyModules);
+ twiddleAction.setEnabled(true);
+ editLaunchConfigAction.setEnabled(true);
+
+ }
+
+ public IServer getSelectedServer() {
+ Object o = ((IStructuredSelection)tableViewer.getSelection()).getFirstElement();
+ return (IServer)o;
+ }
+
+ public void initializeActions(ISelectionProvider provider) {
+ createWTPActions(provider);
+ createCustomActions();
+ }
+
+ protected void createWTPActions(ISelectionProvider provider) {
+ Shell shell = viewSite.getShell();
+ IActionBars actionBars = viewSite.getActionBars();
+
+ actions = new Action[6];
+ // create the start actions
+ actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug", actions[0]);
+ actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
+ actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
+
+ // create the stop action
+ actions[3] = new StopAction(shell, provider);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]);
+
+ // create the publish actions
+ actions[4] = new PublishAction(shell, provider);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish", actions[4]);
+ actions[5] = new PublishCleanAction(shell, provider);
+
+ // create the open action
+ openAction = new OpenAction(provider);
+ actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open", openAction);
+
+ // create copy, paste, and delete actions
+ pasteAction = new PasteAction(shell, provider, tableViewer.clipboard);
+ copyAction = new CopyAction(provider, tableViewer.clipboard, pasteAction);
+ deleteAction = new DeleteAction(shell, provider);
+ renameAction = new RenameAction(shell, tableViewer, provider);
+ actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
+ actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
+
+ // create the other actions
+ actionModifyModules = new ModuleSloshAction(shell, provider);
+ showInConsoleAction = new ShowInConsoleAction(provider);
+ showInDebugAction = new ShowInDebugAction(provider);
+
+ // create the properties action
+ propertiesAction = new PropertiesAction(shell, provider);
+ actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
+ }
+
+ protected void createCustomActions() {
+ newServerAction = new Action() {
+ public void run() {
+ IAction newServerAction = new NewServerWizardAction();
+ newServerAction.run();
+ }
+ };
+ newServerAction.setText("New Server");
+ newServerAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
+
+ editLaunchConfigAction = new Action() {
+ public void run() {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ try {
+ final Object selected = getSelectedServer();
+ IServer s = null;
+ if( selected instanceof JBossServer ) {
+ s = ((JBossServer)selected).getServer();
+ } else if( selected instanceof IServer ) {
+ s = (IServer)selected;
+ }
+
+ if( s != null ) {
+ ILaunchConfiguration launchConfig = ((Server) s).getLaunchConfiguration(true, null);
+ // TODO: use correct launch group
+ DebugUITools.openLaunchConfigurationPropertiesDialog(new Shell(), launchConfig, "org.eclipse.debug.ui.launchGroup.run");
+ }
+ } catch (CoreException ce) {
+ }
+ }
+ });
+ }
+ };
+ editLaunchConfigAction.setText(org.jboss.ide.eclipse.as.ui.Messages.EditLaunchConfigurationAction);
+ editLaunchConfigAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.IMG_JBOSS_CONFIGURATION));
+
+ twiddleAction = new Action() {
+ public void run() {
+ final IStructuredSelection selected = ((IStructuredSelection)tableViewer.getSelection());
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ TwiddleDialog dialog = new TwiddleDialog(tableViewer.getTree().getShell(), selected.getFirstElement());
+ dialog.open();
+ }
+ } );
+
+ }
+ };
+ twiddleAction.setText( org.jboss.ide.eclipse.as.ui.Messages.TwiddleServerAction);
+ twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE));
+
+ }
+
+ public ServerTableViewer getViewer() {
+ return tableViewer;
+ }
+
+ public void refresh() {
+ tableViewer.refresh();
+ }
+
+ public IAction[] getActionBarActions() {
+ return actions;
+ }
+
+ public int getDefaultSize() {
+ return 0;
+ }
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerTableViewer.java (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerTableViewer.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerTableViewer.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -0,0 +1,389 @@
+package org.jboss.tools.as.wst.server.ui.views.server;
+/**
+ * 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.
+ */
+
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.wst.server.core.IPublishListener;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerLifecycleListener;
+import org.eclipse.wst.server.core.IServerListener;
+import org.eclipse.wst.server.core.IServerType;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.ServerEvent;
+import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.core.util.PublishAdapter;
+import org.eclipse.wst.server.ui.internal.Trace;
+import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager;
+import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider;
+/**
+ * Tree view showing servers and their associations.
+ * This is for the TOP window
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerTableViewer extends TreeViewer {
+ protected static final String ROOT = "root";
+
+ protected IServerLifecycleListener serverResourceListener;
+ protected IPublishListener publishListener;
+ protected IServerListener serverListener;
+
+ protected static Object deletedElement = null;
+
+ // servers that are currently publishing and starting
+ protected static List publishing = new ArrayList();
+ protected static List starting = new ArrayList();
+
+ protected ServerTableLabelProvider2 labelProvider;
+ protected Clipboard clipboard;
+
+ protected IViewSite viewSite;
+
+ protected class ServerTableLabelProvider2 extends ServerTableLabelProvider {
+ private int myCount = 0;
+ protected Image getStateImage(IServerType serverType, int state, String mode) {
+ return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode, myCount);
+ }
+ protected String getStateLabel(IServerType serverType, int state, String mode) {
+ return UIDecoratorManager.getUIDecorator(serverType).getStateLabel(state, mode, myCount);
+ }
+ protected void animate() {
+ myCount ++;
+ if (myCount > 2)
+ myCount = 0;
+ }
+
+ }
+
+ public class TrimmedServerContentProvider implements IStructuredContentProvider, ITreeContentProvider {
+ public Object[] getElements(Object element) {
+ return ServerCore.getServers();
+ }
+
+ public void inputChanged(Viewer theViewer, Object oldInput, Object newInput) {
+ // do nothing
+ }
+
+ public void dispose() {
+ // do nothing
+ }
+
+ public Object[] getChildren(Object element) {
+ return new Object[0];
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return false;
+ }
+ }
+
+ protected Thread thread = null;
+ protected boolean stopThread = false;
+
+ protected void startThread() {
+ stopThread = false;
+ if (thread != null)
+ return;
+
+ thread = new Thread("Servers View Animator") {
+ public void run() {
+ while (!stopThread) {
+ try {
+ labelProvider.animate();
+ final Object[] rootElements = ((ITreeContentProvider)getContentProvider()).getElements(null);
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ if (getTree() != null && !getTree().isDisposed())
+ update(rootElements, null);
+ }
+ });
+ Thread.sleep(250);
+ } catch (Exception e) {
+ Trace.trace(Trace.FINEST, "Error in animated server view", e);
+ }
+ thread = null;
+ }
+ }
+ };
+ thread.setDaemon(true);
+ thread.start();
+ }
+
+ protected void stopThread() {
+ stopThread = true;
+ }
+
+ /**
+ * ServerTableViewer constructor comment.
+ *
+ * @param view the view
+ * @param tree the tree
+ */
+ public ServerTableViewer(final IViewSite site, final Tree tree) {
+ super(tree);
+ this.viewSite = site;
+ clipboard = new Clipboard(tree.getDisplay());
+
+ setContentProvider(new TrimmedServerContentProvider());
+ labelProvider = new ServerTableLabelProvider2();
+ labelProvider.addListener(new ILabelProviderListener() {
+ public void labelProviderChanged(LabelProviderChangedEvent event) {
+ Object[] obj = event.getElements();
+ if (obj == null)
+ refresh(true);
+ else {
+ int size = obj.length;
+ for (int i = 0; i < size; i++)
+ refresh(obj[i], true);
+ }
+ }
+ });
+ setLabelProvider(labelProvider);
+ setSorter(new ViewerSorter() {
+ // empty
+ });
+
+ setInput(ROOT);
+ addListeners();
+ }
+
+ protected void addListeners() {
+ serverResourceListener = new IServerLifecycleListener() {
+ public void serverAdded(IServer server) {
+ addServer(server);
+ server.addServerListener(serverListener);
+ ((Server) server).addPublishListener(publishListener);
+ }
+ public void serverChanged(IServer server) {
+ refreshServer(server);
+ }
+ public void serverRemoved(IServer server) {
+ removeServer(server);
+ server.removeServerListener(serverListener);
+ ((Server) server).removePublishListener(publishListener);
+ }
+ };
+ ServerCore.addServerLifecycleListener(serverResourceListener);
+
+ publishListener = new PublishAdapter() {
+ public void publishStarted(IServer server) {
+ handlePublishChange(server, true);
+ }
+
+ public void publishFinished(IServer server, IStatus status) {
+ handlePublishChange(server, false);
+ }
+ };
+
+ serverListener = new IServerListener() {
+ public void serverChanged(ServerEvent event) {
+ if (event == null) {
+ return;
+ }
+ int eventKind = event.getKind();
+ IServer server = event.getServer();
+ if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
+ // server change event
+ if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
+ refreshServer(server);
+ int state = event.getState();
+ String id = server.getId();
+ if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
+ if (!starting.contains(id)) {
+ if (starting.isEmpty())
+ startThread();
+ starting.add(id);
+ }
+ } else {
+ if (starting.contains(id)) {
+ starting.remove(id);
+ if (starting.isEmpty())
+ stopThread();
+ }
+ }
+ } else
+ refreshServer(server);
+ } else if ((eventKind & ServerEvent.MODULE_CHANGE) != 0) {
+ // module change event
+ if ((eventKind & ServerEvent.STATE_CHANGE) != 0 || (eventKind & ServerEvent.PUBLISH_STATE_CHANGE) != 0) {
+ refreshServer(server);
+ }
+ }
+ }
+ };
+
+ // add listeners to servers
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ servers[i].addServerListener(serverListener);
+ ((Server) servers[i]).addPublishListener(publishListener);
+ }
+ }
+ }
+
+ protected void refreshServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ try {
+ refresh(server);
+
+ // This ensures the icons are updated in case of a publish or state change
+ ISelection sel = ServerTableViewer.this.getSelection();
+ ServerTableViewer.this.setSelection(sel);
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ });
+ }
+
+ protected void handleDispose(DisposeEvent event) {
+ stopThread();
+ //if (dsListener != null)
+ // view.getViewSite().getPage().removeSelectionListener(dsListener);
+
+ ServerCore.removeServerLifecycleListener(serverResourceListener);
+
+ // remove listeners from server
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ servers[i].removeServerListener(serverListener);
+ ((Server) servers[i]).removePublishListener(publishListener);
+ }
+ }
+
+ clipboard.dispose();
+ super.handleDispose(event);
+ }
+
+ /**
+ * Called when the publish state changes.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handlePublishChange(IServer server, boolean isPublishing) {
+ String serverId = server.getId();
+ if (isPublishing)
+ publishing.add(serverId);
+ else
+ publishing.remove(serverId);
+
+ refreshServer(server);
+ }
+
+ /**
+ *
+ */
+ protected void handleServerModulesChanged(IServer server2) {
+ if (server2 == null)
+ return;
+
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ if (server2.equals(servers[i]))
+ refresh(servers[i]);
+ }
+ }
+ }
+
+ /**
+ * Called when an element is added.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceAdded(IServer server) {
+ add(null, server);
+ }
+
+ /**
+ * Called when an element is changed.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceChanged(IServer server) {
+ refresh(server);
+ }
+
+ /**
+ * Called when an element is removed.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceRemoved(IServer server) {
+ remove(server);
+
+ String serverId = server.getId();
+ publishing.remove(serverId);
+
+ viewSite.getActionBars().getStatusLineManager().setMessage(null, null);
+ }
+
+ protected void addServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ add(ROOT, server);
+ }
+ });
+ }
+
+ protected void removeServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ remove(server);
+ }
+ });
+ }
+}
\ No newline at end of file
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages (from rev 8163, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages)
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java 2008-05-16 22:09:23 UTC (rev 8163)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -19,7 +19,7 @@
* 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.tools.wst.server.ui.views.server.preferencepages;
+package org.jboss.tools.as.wst.server.ui.views.server.preferencepages;
import java.util.Collection;
import java.util.HashMap;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java 2008-05-16 22:09:23 UTC (rev 8163)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -19,7 +19,7 @@
* 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.tools.wst.server.ui.views.server.preferencepages;
+package org.jboss.tools.as.wst.server.ui.views.server.preferencepages;
import java.util.ArrayList;
import java.util.HashMap;
@@ -50,8 +50,8 @@
import org.eclipse.ui.part.PageBook;
import org.jboss.ide.eclipse.as.ui.Messages;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
-import org.jboss.tools.wst.server.ui.ToolsServerUICore;
-import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.as.wst.server.ui.ToolsServerUICore;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java 2008-05-16 22:09:23 UTC (rev 8163)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java 2008-05-16 22:51:48 UTC (rev 8164)
@@ -19,7 +19,7 @@
* 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.tools.wst.server.ui.views.server.preferencepages;
+package org.jboss.tools.as.wst.server.ui.views.server.preferencepages;
import org.eclipse.swt.widgets.Composite;
17 years, 11 months
JBoss Tools SVN: r8163 - in trunk/as/plugins/org.jboss.ide.eclipse.as.ui: jbossui/org/jboss/ide/eclipse/as/ui and 10 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-05-16 18:09:23 -0400 (Fri, 16 May 2008)
New Revision: 8163
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
JBIDE-2217
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -1,78 +0,0 @@
-/**
- * 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;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
-
-/**
- *
- * @author rob.stryker(a)jboss.com
- */
-public class ExtensionManager {
- private static ExtensionManager instance;
- public static ExtensionManager getDefault() {
- if( instance == null )
- instance = new ExtensionManager();
- return instance;
- }
-
- private ServerViewProvider[] serverViewExtensions;
- public ServerViewProvider[] getAllServerViewProviders() {
- if( serverViewExtensions == null )
- loadAllServerViewProviders();
- Arrays.sort(serverViewExtensions, new Comparator() {
- public int compare(Object arg0, Object arg1) {
- if( arg0 instanceof ServerViewProvider && arg1 instanceof ServerViewProvider) {
- return ((ServerViewProvider)arg0).getWeight() - ((ServerViewProvider)arg1).getWeight();
- }
- return 0;
- }
- });
- return serverViewExtensions;
- }
- private void loadAllServerViewProviders() {
- // Create the extensions from the registry
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] elements = registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID, "ServerViewExtension");
- ArrayList list = new ArrayList();
- for( int i = 0; i < elements.length; i++ ) {
- try {
- list.add(new ServerViewProvider(elements[i]));
- } catch(Exception e) {
- String msg = "Server View Provider (" + elements[i].getAttribute(ServerViewProvider.ID_LABEL) + ") failed to load";
- IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, msg, e);
- JBossServerUIPlugin.getDefault().getLog().log(status);
- }
- }
- serverViewExtensions = (ServerViewProvider[]) list.toArray(new ServerViewProvider[list.size()]);
- }
-
-}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -32,6 +32,7 @@
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.tools.wst.server.ui.ExtensionManager;
import org.osgi.framework.BundleContext;
/**
@@ -89,23 +90,6 @@
JBossServerCorePlugin.getDefault();
}
-
-
- public ServerViewProvider[] getEnabledViewProviders(IServer server) {
- ServerViewProvider[] serverViewExtensions = getAllServerViewProviders();
- ArrayList list = new ArrayList();
- for( int i = 0; i < serverViewExtensions.length; i++ ) {
- if( serverViewExtensions[i].isEnabled() && serverViewExtensions[i].supports(server)) {
- list.add(serverViewExtensions[i]);
- }
- }
- return (ServerViewProvider[]) list.toArray(new ServerViewProvider[list.size()]);
- }
-
- public ServerViewProvider[] getAllServerViewProviders() {
- return ExtensionManager.getDefault().getAllServerViewProviders();
- }
-
public static void log(String message, Exception e) {
IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, message, e);
JBossServerUIPlugin.getDefault().getLog().log(status);
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -1,490 +0,0 @@
-/**
- * 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;
-
-import java.util.ArrayList;
-import java.util.Properties;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-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.swt.widgets.Widget;
-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.IServerLifecycleListener;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.ui.ServerUICore;
-import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
-import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
-import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
-import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
-import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.SimplePropertiesPropertySheetPage;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ExtensionTableViewer extends TreeViewer {
-
- protected TableViewerPropertySheet propertySheet;
- protected Action disableCategoryAction, refreshAction;
- protected boolean suppressingRefresh = false;
- public ExtensionTableViewer(Tree tree) {
- super(tree);
- setContentProvider(new ContentProviderDelegator());
- setLabelProvider(new LabelProviderDelegator());
- propertySheet = new TableViewerPropertySheet();
- createActions();
-
- UnitedServerListenerManager.getDefault().addListener(new UnitedServerListener() {
- public void serverRemoved(IServer server) {
- final IServer server2 = server;
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- Object o = getInput();
- if( server2.equals(o)) {
- setInput(null);
- }
- }
- });
- }
- });
- }
-
- protected void createActions() {
- 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);
- refreshAction = new Action() {
- public void run() {
- Object o1 = ((IStructuredSelection)getSelection()).getFirstElement();
- if( o1 != null ) {
- // tell the delegate to refresh its model for the selected item, before we refresh the viewer
- ServerViewProvider provider = o1 instanceof ServerViewProvider ? (ServerViewProvider)o1 : ((ContentWrapper)o1).getProvider();
- if( provider != null )
- provider.getDelegate().refreshModel(o1);
- }
- Object el = getSelectedElement();
- if( el instanceof ServerViewProvider )
- refresh(el);
- else
- refresh(((IStructuredSelection)getSelection()).getFirstElement());
- }
- };
- refreshAction.setText("Refresh Item");
- }
-
- 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 ) {
- if( ((ContentWrapper)other).getElement() == null )
- return o == null;
- return ((ContentWrapper)other).getElement().equals(o);
- }
- return false;
- }
-
- public int hashCode() {
- if( o == null ) return super.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();
- return ret;
- }
- if( obj instanceof ServerViewProvider) {
- return ((ServerViewProvider)obj).getName();
- }
-
- if( obj instanceof ContentWrapper ) {
- ContentWrapper wrapper = (ContentWrapper)obj;
- return wrapper.getProvider().getDelegate().getLabelProvider().getText(wrapper.getElement());
- }
- return obj.toString();
- }
- public Image getImage(Object obj) {
- if( obj instanceof JBossServer ) {
- return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer());
- }
- 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;
- }
- }
- protected class ContentProviderDelegator implements ITreeContentProvider {
-
- public ContentProviderDelegator() {
- }
-
- public ContentWrapper[] wrap( Object[] elements, ServerViewProvider provider ) {
- if( elements == null ) return new ContentWrapper[0];
-
- 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) {
- if( inputElement == null ) return new Object[0];
- IServer tmp = (IServer)getInput();
- if( tmp == null )
- return new Object[0];
- return JBossServerUIPlugin.getDefault().getEnabledViewProviders(tmp);
- }
-
- public Object[] getChildren(Object parentElement) {
- if( parentElement == null ) return new Object[0];
-
- if( parentElement instanceof ServerViewProvider) {
- 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 = parentWrapper.getProvider().getDelegate().getContentProvider().getChildren(parentWrapper.getElement());
- } catch( Exception e) {
- JBossServerUIPlugin.log("Error finding children of " + parentElement, e);
- }
- if( o == null )
- return new Object[0];
- return wrap(o, parentWrapper.getProvider());
- }
- return new Object[0];
- }
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- if( element instanceof ServerViewProvider )
- return ((ServerViewProvider)element).getDelegate().getContentProvider().hasChildren(element);
- if( element instanceof ContentWrapper ) {
- ContentWrapper parentWrapper = (ContentWrapper)element;
- return parentWrapper.getProvider().getDelegate().getContentProvider().hasChildren(parentWrapper.getElement());
- }
- return getChildren(element).length > 0 ? true : false;
- }
-
- public void dispose() {
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().
- getEnabledViewProviders(newInput instanceof IServer ? (IServer)newInput : null);
- for( int i = 0; i < providers.length; i++ ) {
- try {
- providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput, newInput);
- } catch( Exception e) {
- JBossServerUIPlugin.log("Error changing input to " + newInput, e);
- }
- }
- }
-
- }
-
- public Object getRawElement(Object o) {
- if( o instanceof ContentWrapper )
- return ((ContentWrapper)o).getElement();
- return o;
- }
-
- public Object[] getRawElements(IStructuredSelection selection) {
- ArrayList<Object> tmp = new ArrayList<Object>();
- Object[] obj = selection.toArray();
- Object tmp2;
- for( int i = 0; i < obj.length; i++ ) {
- tmp2 = getRawElement(obj[i]);
- if( tmp2 != null ) tmp.add(tmp2);
- }
- return (Object[]) tmp.toArray(new Object[tmp.size()]);
- }
-
- public ServerViewProvider getParentViewProvider(Object o) {
- if( o instanceof ContentWrapper )
- return ((ContentWrapper)o).getProvider();
- return null;
- }
-
- public Object getSelectedElement() {
- ISelection sel = getSelection();
- if( sel instanceof IStructuredSelection ) {
- Object o = ((IStructuredSelection)sel).getFirstElement();
- if( o != null && o instanceof ContentWrapper ) {
- o = ((ContentWrapper)o).getElement();
- }
- return o;
- }
- return null;
- }
-
- protected void fillSelectedContextMenu(Shell shell, IMenuManager mgr) {
- ISelection sel = getSelection();
- if (sel instanceof IStructuredSelection) {
- ServerViewProvider provider = findProvider((IStructuredSelection)sel);
- if (provider != null) {
- Object[] selected = getRawElements((IStructuredSelection)sel);
- provider.getDelegate().fillContextMenu(shell, mgr, selected);
- }
- }
- }
-
- protected ServerViewProvider findProvider(IStructuredSelection sel) {
- Object[] selected = sel.toArray();
- ServerViewProvider provider = null;
- ServerViewProvider tmpProvider;
- for( int i = 0; i < selected.length; i++ ) {
- if( selected[i] instanceof ServerViewProvider ) {
- tmpProvider = (ServerViewProvider)selected[i];
- } else {
- tmpProvider = getParentViewProvider(selected[i]);
- }
- if( provider == null )
- provider = tmpProvider;
- else if( tmpProvider != provider )
- return null;
- }
- return provider;
- }
-
- protected void fillJBContextMenu(Shell shell, IMenuManager menu) {
- Object selected = getSelectedElement();
- menu.add(refreshAction);
- if( selected instanceof ServerViewProvider ) {
- menu.add(disableCategoryAction);
- }
-
- menu.add(new Separator());
- }
-
- public IPropertySheetPage getPropertySheet() {
- return propertySheet;
- }
-
- public class TableViewerPropertySheet implements IPropertySheetPage {
-
- private PageBook book;
- private ArrayList<ServerViewProvider> addedControls = new ArrayList<ServerViewProvider>();
- private SimplePropertiesPropertySheetPage topLevelPropertiesPage;
-
- public void createControl(Composite parent) {
- topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new TopLevelProperties());
- book = new PageBook(parent, SWT.NONE);
- addedControls.clear();
- 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).getProvider());
- } else /*if( selected instanceof ServerViewProvider ) {
- page = getDelegatePage((ServerViewProvider)selected);
- } else if( page == null ) */ {
- page = topLevelPropertiesPage;
- }
- if( page != null ) {
- page.selectionChanged(part, sel);
- book.showPage(page.getControl());
- }
- }
- }
- private IPropertySheetPage getDelegatePage(ServerViewProvider provider) {
- IPropertySheetPage returnSheet = null;
- returnSheet = provider.getDelegate().getPropertySheetPage();
- if( !addedControls.contains(provider) && returnSheet != null) {
- 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());
- }
- 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() {
- // The Loner
- propertySheet.dispose();
-
- ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getAllServerViewProviders();
- for( int i = 0; i < providers.length; i++ ) {
- providers[i].dispose();
- }
- }
-
-
- public void suppressingRefresh(Runnable runnable) {
- boolean currentVal = suppressingRefresh;
- suppressingRefresh = true;
- runnable.run();
- suppressingRefresh = currentVal;
- }
-
- public void refresh() {
- refresh(null);
- }
- public void refresh(final Object element) {
- if(!suppressingRefresh) {
- try {
- super.refresh(element);
- } catch( Exception e ) {
- JBossServerUIPlugin.log("Error refreshing view. ", e);
- }
- }
- }
-
- public boolean elementInTree(Object element) {
- Widget[] w = super.findItems(element);
- return w != null && w.length > 0;
- }
-
-
-}
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -1,192 +0,0 @@
-/**
- * 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;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-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.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class JBossServerView extends ViewPart {
-
- public static final String VIEW_ID = "org.jboss.ide.eclipse.as.ui.views.JBossServerView";
-
- private static final String TAG_SASHFORM_HEIGHT = "sashformHeight";
-
- public static JBossServerView instance;
- private static ArrayList<ISelectionChangedListener> serverFrameListeners = new ArrayList<ISelectionChangedListener>();
- private static ArrayList<ISelectionChangedListener> extensionFrameListeners = new ArrayList<ISelectionChangedListener>();
-
- public static JBossServerView getDefault() {
- return instance;
- }
-
- public static void addServerFrameListener(ISelectionChangedListener listener) {
- if( !serverFrameListeners.contains(listener))
- serverFrameListeners.add(listener);
- if( getDefault() != null )
- getDefault().getServerFrame().getViewer().addSelectionChangedListener(listener);
- }
- public static void addExtensionFrameListener(ISelectionChangedListener listener) {
- if( !extensionFrameListeners.contains(listener))
- extensionFrameListeners.add(listener);
- if( getDefault() != null )
- getDefault().getExtensionFrame().getViewer().addSelectionChangedListener(listener);
- }
-
- public static void removeServerFrameListener(ISelectionChangedListener listener) {
- if( serverFrameListeners.contains(listener))
- serverFrameListeners.remove(listener);
- if( getDefault() != null )
- getDefault().getServerFrame().getViewer().removeSelectionChangedListener(listener);
- }
- public static void removeExtensionFrameListener(ISelectionChangedListener listener) {
- if( extensionFrameListeners.contains(listener))
- extensionFrameListeners.remove(listener);
- if( getDefault() != null )
- getDefault().getExtensionFrame().getViewer().removeSelectionChangedListener(listener);
- }
-
- public static interface IServerViewFrame {
- public IAction[] getActionBarActions();
- public int getDefaultSize();
- public void refresh();
- }
-
- public JBossServerView() {
- super();
- instance = this;
- }
-
- private SashForm form;
- private int[] sashRows;
- private IMemento memento;
-
- private IServerViewFrame[] frames;
- private ServerFrame serverFrame;
- private ServerExtensionFrame extensionFrame;
-
- public void init(IViewSite site, IMemento memento) throws PartInitException {
- super.init(site, memento);
- ServerUIPlugin.getPreferences().setShowOnActivity(false);
- this.memento = memento;
- int sum = 0;
- sashRows = new int[2];
- for (int i = 0; i < sashRows.length; i++) {
- sashRows[i] = 50;
- if (memento != null) {
- Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i);
- if (in != null && in.intValue() > 5)
- sashRows[i] = in.intValue();
- }
- sum += sashRows[i];
- }
- }
-
- public void saveState(IMemento memento) {
- super.saveState(memento);
- int[] weights = form.getWeights();
- for (int i = 0; i < weights.length; i++) {
- if (weights[i] != 0)
- memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]);
- }
- }
-
- public void createPartControl(Composite parent) {
- form = new SashForm(parent, SWT.VERTICAL);
- form.setBackground(new Color(parent.getDisplay(), 255, 255, 255));
- form.setLayout(new FillLayout());
-
-
- Composite topWrapper = new Composite(form, SWT.NONE);
- topWrapper.setLayout(new FillLayout());
- serverFrame = new ServerFrame(topWrapper, this);
-
- Composite bottomWrapper = new Composite(form, SWT.NONE);
- bottomWrapper.setLayout(new FillLayout());
- extensionFrame = new ServerExtensionFrame(bottomWrapper, this);
-
-
- frames = new IServerViewFrame[] { serverFrame, extensionFrame };
-
- // add toolbar buttons
- IContributionManager cm = getViewSite().getActionBars().getToolBarManager();
- for( int i = 0; i < frames.length; i++ ) {
- IAction[] actions = frames[i].getActionBarActions();
- for (int j = 0; j < actions.length - 1; j++)
- cm.add(actions[j]);
- }
-
- form.setWeights(sashRows);
-
-
- // if the extensions have already been created, add those listeners now.
- Iterator<ISelectionChangedListener> k;
- for(k = serverFrameListeners.iterator(); k.hasNext();)
- serverFrame.getViewer().addSelectionChangedListener(k.next());
- for(k = extensionFrameListeners.iterator(); k.hasNext();)
- extensionFrame.getViewer().addSelectionChangedListener(k.next());
- }
-
- public void refreshAll() {
- for( int i = 0; i < frames.length; i++ ) {
- frames[i].refresh();
- }
- }
-
- public ServerFrame getServerFrame() { return this.serverFrame; }
- public ServerExtensionFrame getExtensionFrame() { return this.extensionFrame; }
-
- public void setFocus() {
- getExtensionFrame().getViewer().getTree().setFocus();
- }
-
- public IServer getSelectedServer() {
- return serverFrame == null ? null : serverFrame.getSelectedServer();
- }
-
- public Object getAdapter(Class adaptor) {
- if( adaptor == IPropertySheetPage.class) {
- return extensionFrame.getViewer().getPropertySheet();
- }
- return super.getAdapter(adaptor);
- }
-}
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -1,122 +0,0 @@
-/**
- * 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;
-
-import org.eclipse.jface.action.IAction;
-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.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView.IServerViewFrame;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ServerExtensionFrame extends Composite implements IServerViewFrame {
-
- private Tree jbTreeTable;
- private ExtensionTableViewer jbViewer;
- private JBossServerView view;
- public ServerExtensionFrame(Composite parent, JBossServerView view) {
- super(parent, SWT.NONE);
- this.view = view;
- setLayout(new FillLayout());
- jbTreeTable = new Tree(this, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- jbViewer = new ExtensionTableViewer(jbTreeTable);
- view.getSite().setSelectionProvider(jbViewer);
- addListeners();
- doMenuStuff(parent);
- }
-
- 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.fillSelectedContextMenu(shell, mgr);
- mgr.add(new Separator());
- jbViewer.fillJBContextMenu(shell, mgr);
- }
- });
- Menu menu = menuManager.createContextMenu(parent);
- jbTreeTable.setMenu(menu);
- }
-
- public ExtensionTableViewer getViewer() {
- return jbViewer;
- }
-
- public void refresh() {
- jbViewer.refresh();
- }
-
- public void addListeners() {
-
- /*
- * Handles the selection of the server viewer which is embedded in my sashform
- */
- view.getServerFrame().getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- Object selection = ((TreeSelection)event.getSelection()).getFirstElement();
- Object server = selection;
- if( selection instanceof ModuleServer ) {
- server = ((ModuleServer)selection).server;
- }
-
- if( selection == null ) return;
- if( server != jbViewer.getInput()) {
- // find the newest copy of the server
- IServer tmp = ServerCore.findServer(((IServer)server).getId());
- jbViewer.setInput(tmp);
- } else {
- jbViewer.refresh();
- }
- }
-
- });
- }
-
-
- public IAction[] getActionBarActions() {
- return new IAction[] {}; // none
- }
-
- public int getDefaultSize() {
- return 0;
- }
- }
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -1,343 +0,0 @@
-/**
- * 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;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionManager;
-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.bindings.TriggerSequence;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-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.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.internal.Trace;
-import org.eclipse.wst.server.ui.internal.ContextIds;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-import org.eclipse.wst.server.ui.internal.actions.NewServerWizardAction;
-import org.eclipse.wst.server.ui.internal.view.servers.CopyAction;
-import org.eclipse.wst.server.ui.internal.view.servers.DeleteAction;
-import org.eclipse.wst.server.ui.internal.view.servers.ModuleSloshAction;
-import org.eclipse.wst.server.ui.internal.view.servers.OpenAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PasteAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PropertiesAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PublishAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PublishCleanAction;
-import org.eclipse.wst.server.ui.internal.view.servers.RenameAction;
-import org.eclipse.wst.server.ui.internal.view.servers.ShowInConsoleAction;
-import org.eclipse.wst.server.ui.internal.view.servers.ShowInDebugAction;
-import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
-import org.eclipse.wst.server.ui.internal.view.servers.StopAction;
-import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
-import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
-import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView.IServerViewFrame;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ServerFrame extends Composite implements IServerViewFrame {
-
- protected Action[] actions;
- protected IWorkbenchPartSite site;
- protected IViewSite viewSite;
- protected Tree treeTable;
- protected ServerTableViewer tableViewer;
-
- // custom
- protected Action editLaunchConfigAction, twiddleAction, newServerAction;
-
- // wtp
- protected Action actionModifyModules;
- protected Action openAction, showInConsoleAction, showInDebugAction, propertiesAction;
- protected Action copyAction, pasteAction, deleteAction, renameAction;
-
- public ServerFrame(Composite parent, JBossServerView view) {
- super(parent, SWT.BORDER);
- setLayout(new FillLayout());
- this.site = view.getSite();
- this.viewSite = view.getViewSite();
-
-
- int cols[] = new int[] {150, 100, 50};
-
- treeTable = new Tree(this, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE);
- treeTable.setHeaderVisible(true);
- treeTable.setLinesVisible(false);
- treeTable.setFont(parent.getFont());
- PlatformUI.getWorkbench().getHelpSystem().setHelp(treeTable, ContextIds.VIEW_SERVERS);
-
- // add columns
- TreeColumn column = new TreeColumn(treeTable, SWT.SINGLE);
- column.setText(Messages.viewServer);
- column.setWidth(cols[0]);
-
- TreeColumn column2 = new TreeColumn(treeTable, SWT.SINGLE);
- column2.setText(Messages.viewState);
- column2.setWidth(cols[1]);
-
- TreeColumn column3 = new TreeColumn(treeTable, SWT.SINGLE);
- column3.setText(Messages.viewStatus);
- column3.setWidth(cols[2]);
-
- tableViewer = new ServerTableViewer(viewSite, treeTable);
- initializeActions(tableViewer);
-
- treeTable.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- try {
- } catch (Exception e) {
- viewSite.getActionBars().getStatusLineManager().setMessage(null, "");
- }
- }
- public void widgetDefaultSelected(SelectionEvent event) {
- try {
- TreeItem item = treeTable.getSelection()[0];
- Object data = item.getData();
- if (!(data instanceof IServer))
- return;
- IServer server = (IServer) data;
- ServerUIPlugin.editServer(server);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not open server", e);
- }
- }
- });
-
- MenuManager menuManager = new MenuManager("#PopupMenu");
- menuManager.setRemoveAllWhenShown(true);
- final Shell shell = treeTable.getShell();
- menuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager mgr) {
- fillContextMenu(shell, mgr);
- }
- });
- Menu menu = menuManager.createContextMenu(parent);
- treeTable.setMenu(menu);
- site.registerContextMenu(menuManager, tableViewer);
- site.setSelectionProvider(tableViewer);
- }
-
- protected void fillContextMenu(Shell shell, IMenuManager menu) {
- if( getSelectedServer() != null ) {
- cloneFill(shell, menu);
- }
- }
-
- protected void cloneFill(Shell shell, IMenuManager menu) {
-
- /* Show in ... */
- String text = Messages.actionShowIn;
- final IWorkbench workbench = PlatformUI.getWorkbench();
- final IBindingService bindingService = (IBindingService) workbench
- .getAdapter(IBindingService.class);
- final TriggerSequence[] activeBindings = bindingService
- .getActiveBindingsFor("org.eclipse.ui.navigate.showInQuickMenu");
- if (activeBindings.length > 0) {
- text += "\t" + activeBindings[0].format();
- }
-
- menu.add(newServerAction);
- menu.add(openAction);
-
- MenuManager showInMenu = new MenuManager(text);
- showInMenu.add(showInConsoleAction);
- showInMenu.add(showInDebugAction);
- menu.add(showInMenu);
- menu.add(new Separator());
-
- menu.add(copyAction);
- menu.add(pasteAction);
- menu.add(deleteAction);
- menu.add(renameAction);
-
- menu.add(new Separator());
-
- // server actions
- for (int i = 0; i < actions.length; i++)
- menu.add(actions[i]);
-
- menu.add(new Separator());
-// menu.add(actionModifyModules);
-
- menu.add(twiddleAction);
- menu.add(editLaunchConfigAction);
- menu.add(actionModifyModules);
- twiddleAction.setEnabled(true);
- editLaunchConfigAction.setEnabled(true);
-
- }
-
- public IServer getSelectedServer() {
- Object o = ((IStructuredSelection)tableViewer.getSelection()).getFirstElement();
- return (IServer)o;
- }
-
- public void initializeActions(ISelectionProvider provider) {
- createWTPActions(provider);
- createCustomActions();
- }
-
- protected void createWTPActions(ISelectionProvider provider) {
- Shell shell = viewSite.getShell();
- IActionBars actionBars = viewSite.getActionBars();
-
- actions = new Action[6];
- // create the start actions
- actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug", actions[0]);
- actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
- actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
-
- // create the stop action
- actions[3] = new StopAction(shell, provider);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]);
-
- // create the publish actions
- actions[4] = new PublishAction(shell, provider);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish", actions[4]);
- actions[5] = new PublishCleanAction(shell, provider);
-
- // create the open action
- openAction = new OpenAction(provider);
- actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open", openAction);
-
- // create copy, paste, and delete actions
- pasteAction = new PasteAction(shell, provider, tableViewer.clipboard);
- copyAction = new CopyAction(provider, tableViewer.clipboard, pasteAction);
- deleteAction = new DeleteAction(shell, provider);
- renameAction = new RenameAction(shell, tableViewer, provider);
- actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
- actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
- actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
- actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
-
- // create the other actions
- actionModifyModules = new ModuleSloshAction(shell, provider);
- showInConsoleAction = new ShowInConsoleAction(provider);
- showInDebugAction = new ShowInDebugAction(provider);
-
- // create the properties action
- propertiesAction = new PropertiesAction(shell, provider);
- actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
- }
-
- protected void createCustomActions() {
- newServerAction = new Action() {
- public void run() {
- IAction newServerAction = new NewServerWizardAction();
- newServerAction.run();
- }
- };
- newServerAction.setText("New Server");
- newServerAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
-
- editLaunchConfigAction = new Action() {
- public void run() {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- try {
- final Object selected = getSelectedServer();
- IServer s = null;
- if( selected instanceof JBossServer ) {
- s = ((JBossServer)selected).getServer();
- } else if( selected instanceof IServer ) {
- s = (IServer)selected;
- }
-
- if( s != null ) {
- ILaunchConfiguration launchConfig = ((Server) s).getLaunchConfiguration(true, null);
- // TODO: use correct launch group
- DebugUITools.openLaunchConfigurationPropertiesDialog(new Shell(), launchConfig, "org.eclipse.debug.ui.launchGroup.run");
- }
- } catch (CoreException ce) {
- }
- }
- });
- }
- };
- editLaunchConfigAction.setText(org.jboss.ide.eclipse.as.ui.Messages.EditLaunchConfigurationAction);
- editLaunchConfigAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.IMG_JBOSS_CONFIGURATION));
-
- twiddleAction = new Action() {
- public void run() {
- final IStructuredSelection selected = ((IStructuredSelection)tableViewer.getSelection());
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- TwiddleDialog dialog = new TwiddleDialog(tableViewer.getTree().getShell(), selected.getFirstElement());
- dialog.open();
- }
- } );
-
- }
- };
- twiddleAction.setText( org.jboss.ide.eclipse.as.ui.Messages.TwiddleServerAction);
- twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE));
-
- }
-
- public ServerTableViewer getViewer() {
- return tableViewer;
- }
-
- public void refresh() {
- tableViewer.refresh();
- }
-
- public IAction[] getActionBarActions() {
- return actions;
- }
-
- public int getDefaultSize() {
- return 0;
- }
-}
Deleted: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -1,389 +0,0 @@
-package org.jboss.ide.eclipse.as.ui.views.server;
-/**
- * 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.
- */
-
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.wst.server.core.IPublishListener;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.IServerLifecycleListener;
-import org.eclipse.wst.server.core.IServerListener;
-import org.eclipse.wst.server.core.IServerType;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.core.ServerEvent;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.util.PublishAdapter;
-import org.eclipse.wst.server.ui.internal.Trace;
-import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager;
-import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider;
-/**
- * Tree view showing servers and their associations.
- * This is for the TOP window
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ServerTableViewer extends TreeViewer {
- protected static final String ROOT = "root";
-
- protected IServerLifecycleListener serverResourceListener;
- protected IPublishListener publishListener;
- protected IServerListener serverListener;
-
- protected static Object deletedElement = null;
-
- // servers that are currently publishing and starting
- protected static List publishing = new ArrayList();
- protected static List starting = new ArrayList();
-
- protected ServerTableLabelProvider2 labelProvider;
- protected Clipboard clipboard;
-
- protected IViewSite viewSite;
-
- protected class ServerTableLabelProvider2 extends ServerTableLabelProvider {
- private int myCount = 0;
- protected Image getStateImage(IServerType serverType, int state, String mode) {
- return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode, myCount);
- }
- protected String getStateLabel(IServerType serverType, int state, String mode) {
- return UIDecoratorManager.getUIDecorator(serverType).getStateLabel(state, mode, myCount);
- }
- protected void animate() {
- myCount ++;
- if (myCount > 2)
- myCount = 0;
- }
-
- }
-
- public class TrimmedServerContentProvider implements IStructuredContentProvider, ITreeContentProvider {
- public Object[] getElements(Object element) {
- return ServerCore.getServers();
- }
-
- public void inputChanged(Viewer theViewer, Object oldInput, Object newInput) {
- // do nothing
- }
-
- public void dispose() {
- // do nothing
- }
-
- public Object[] getChildren(Object element) {
- return new Object[0];
- }
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return false;
- }
- }
-
- protected Thread thread = null;
- protected boolean stopThread = false;
-
- protected void startThread() {
- stopThread = false;
- if (thread != null)
- return;
-
- thread = new Thread("Servers View Animator") {
- public void run() {
- while (!stopThread) {
- try {
- labelProvider.animate();
- final Object[] rootElements = ((ITreeContentProvider)getContentProvider()).getElements(null);
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- if (getTree() != null && !getTree().isDisposed())
- update(rootElements, null);
- }
- });
- Thread.sleep(250);
- } catch (Exception e) {
- Trace.trace(Trace.FINEST, "Error in animated server view", e);
- }
- thread = null;
- }
- }
- };
- thread.setDaemon(true);
- thread.start();
- }
-
- protected void stopThread() {
- stopThread = true;
- }
-
- /**
- * ServerTableViewer constructor comment.
- *
- * @param view the view
- * @param tree the tree
- */
- public ServerTableViewer(final IViewSite site, final Tree tree) {
- super(tree);
- this.viewSite = site;
- clipboard = new Clipboard(tree.getDisplay());
-
- setContentProvider(new TrimmedServerContentProvider());
- labelProvider = new ServerTableLabelProvider2();
- labelProvider.addListener(new ILabelProviderListener() {
- public void labelProviderChanged(LabelProviderChangedEvent event) {
- Object[] obj = event.getElements();
- if (obj == null)
- refresh(true);
- else {
- int size = obj.length;
- for (int i = 0; i < size; i++)
- refresh(obj[i], true);
- }
- }
- });
- setLabelProvider(labelProvider);
- setSorter(new ViewerSorter() {
- // empty
- });
-
- setInput(ROOT);
- addListeners();
- }
-
- protected void addListeners() {
- serverResourceListener = new IServerLifecycleListener() {
- public void serverAdded(IServer server) {
- addServer(server);
- server.addServerListener(serverListener);
- ((Server) server).addPublishListener(publishListener);
- }
- public void serverChanged(IServer server) {
- refreshServer(server);
- }
- public void serverRemoved(IServer server) {
- removeServer(server);
- server.removeServerListener(serverListener);
- ((Server) server).removePublishListener(publishListener);
- }
- };
- ServerCore.addServerLifecycleListener(serverResourceListener);
-
- publishListener = new PublishAdapter() {
- public void publishStarted(IServer server) {
- handlePublishChange(server, true);
- }
-
- public void publishFinished(IServer server, IStatus status) {
- handlePublishChange(server, false);
- }
- };
-
- serverListener = new IServerListener() {
- public void serverChanged(ServerEvent event) {
- if (event == null) {
- return;
- }
- int eventKind = event.getKind();
- IServer server = event.getServer();
- if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
- // server change event
- if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
- refreshServer(server);
- int state = event.getState();
- String id = server.getId();
- if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
- if (!starting.contains(id)) {
- if (starting.isEmpty())
- startThread();
- starting.add(id);
- }
- } else {
- if (starting.contains(id)) {
- starting.remove(id);
- if (starting.isEmpty())
- stopThread();
- }
- }
- } else
- refreshServer(server);
- } else if ((eventKind & ServerEvent.MODULE_CHANGE) != 0) {
- // module change event
- if ((eventKind & ServerEvent.STATE_CHANGE) != 0 || (eventKind & ServerEvent.PUBLISH_STATE_CHANGE) != 0) {
- refreshServer(server);
- }
- }
- }
- };
-
- // add listeners to servers
- IServer[] servers = ServerCore.getServers();
- if (servers != null) {
- int size = servers.length;
- for (int i = 0; i < size; i++) {
- servers[i].addServerListener(serverListener);
- ((Server) servers[i]).addPublishListener(publishListener);
- }
- }
- }
-
- protected void refreshServer(final IServer server) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- try {
- refresh(server);
-
- // This ensures the icons are updated in case of a publish or state change
- ISelection sel = ServerTableViewer.this.getSelection();
- ServerTableViewer.this.setSelection(sel);
- } catch (Exception e) {
- // ignore
- }
- }
- });
- }
-
- protected void handleDispose(DisposeEvent event) {
- stopThread();
- //if (dsListener != null)
- // view.getViewSite().getPage().removeSelectionListener(dsListener);
-
- ServerCore.removeServerLifecycleListener(serverResourceListener);
-
- // remove listeners from server
- IServer[] servers = ServerCore.getServers();
- if (servers != null) {
- int size = servers.length;
- for (int i = 0; i < size; i++) {
- servers[i].removeServerListener(serverListener);
- ((Server) servers[i]).removePublishListener(publishListener);
- }
- }
-
- clipboard.dispose();
- super.handleDispose(event);
- }
-
- /**
- * Called when the publish state changes.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handlePublishChange(IServer server, boolean isPublishing) {
- String serverId = server.getId();
- if (isPublishing)
- publishing.add(serverId);
- else
- publishing.remove(serverId);
-
- refreshServer(server);
- }
-
- /**
- *
- */
- protected void handleServerModulesChanged(IServer server2) {
- if (server2 == null)
- return;
-
- IServer[] servers = ServerCore.getServers();
- if (servers != null) {
- int size = servers.length;
- for (int i = 0; i < size; i++) {
- if (server2.equals(servers[i]))
- refresh(servers[i]);
- }
- }
- }
-
- /**
- * Called when an element is added.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handleServerResourceAdded(IServer server) {
- add(null, server);
- }
-
- /**
- * Called when an element is changed.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handleServerResourceChanged(IServer server) {
- refresh(server);
- }
-
- /**
- * Called when an element is removed.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handleServerResourceRemoved(IServer server) {
- remove(server);
-
- String serverId = server.getId();
- publishing.remove(serverId);
-
- viewSite.getActionBars().getStatusLineManager().setMessage(null, null);
- }
-
- protected void addServer(final IServer server) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- add(ROOT, server);
- }
- });
- }
-
- protected void removeServer(final IServer server) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- remove(server);
- }
- });
- }
-}
\ No newline at end of file
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -34,10 +34,10 @@
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
-import org.jboss.ide.eclipse.as.ui.preferencepages.ViewProviderPreferenceComposite;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -45,7 +45,7 @@
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -59,11 +59,11 @@
import org.jboss.ide.eclipse.as.ui.dialogs.XPathDialogs;
import org.jboss.ide.eclipse.as.ui.dialogs.XPathDialogs.XPathCategoryDialog;
import org.jboss.ide.eclipse.as.ui.dialogs.XPathDialogs.XPathDialog;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.providers.descriptors.DescriptorXPathPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.views.server.util.ViewUtilityMethods;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -59,12 +59,12 @@
import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.dialogs.ShowStackTraceDialog;
-import org.jboss.ide.eclipse.as.ui.preferencepages.ViewProviderPreferenceComposite;
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.PropertySheetFactory;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
+import org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -88,9 +88,9 @@
import org.jboss.ide.eclipse.as.core.util.FileUtil;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.SimplePropertiesViewExtension;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -34,9 +34,10 @@
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.tools.wst.server.ui.ToolsServerUICore;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
@@ -57,7 +58,7 @@
public Object[] getChildren(Object parentElement) {
if( parentElement == provider ) {
- ServerViewProvider[] allExtensions = JBossServerUIPlugin.getDefault().getAllServerViewProviders();
+ ServerViewProvider[] allExtensions = ToolsServerUICore.getAllServerViewProviders();
ArrayList<ServerViewProvider> list = new ArrayList<ServerViewProvider>();
for( int i = 0; i < allExtensions.length; i++ ) {
if( !allExtensions[i].isEnabled()) {
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -60,8 +60,8 @@
import org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathQuery;
import org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathFileResult.XPathResultNode;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
import org.jboss.ide.eclipse.as.ui.views.server.providers.DescriptorXPathViewProvider;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -46,8 +46,8 @@
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXBean;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXDomain;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.WrappedMBeanOperationInfo;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
import org.jboss.ide.eclipse.as.ui.views.server.providers.jmx.JMXViewProvider.ErrorGroup;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -39,11 +39,11 @@
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXDomain;
import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.util.ViewUtilityMethods;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -30,7 +30,7 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java (from rev 8065, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -0,0 +1,79 @@
+/**
+ * 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.tools.wst.server.ui;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+
+/**
+ *
+ * @author rob.stryker(a)jboss.com
+ */
+public class ExtensionManager {
+ private static ExtensionManager instance;
+ public static ExtensionManager getDefault() {
+ if( instance == null )
+ instance = new ExtensionManager();
+ return instance;
+ }
+
+ private ServerViewProvider[] serverViewExtensions;
+ public ServerViewProvider[] getAllServerViewProviders() {
+ if( serverViewExtensions == null )
+ loadAllServerViewProviders();
+ Arrays.sort(serverViewExtensions, new Comparator() {
+ public int compare(Object arg0, Object arg1) {
+ if( arg0 instanceof ServerViewProvider && arg1 instanceof ServerViewProvider) {
+ return ((ServerViewProvider)arg0).getWeight() - ((ServerViewProvider)arg1).getWeight();
+ }
+ return 0;
+ }
+ });
+ return serverViewExtensions;
+ }
+ private void loadAllServerViewProviders() {
+ // Create the extensions from the registry
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] elements = registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID, "ServerViewExtension");
+ ArrayList list = new ArrayList();
+ for( int i = 0; i < elements.length; i++ ) {
+ try {
+ list.add(new ServerViewProvider(elements[i]));
+ } catch(Exception e) {
+ String msg = "Server View Provider (" + elements[i].getAttribute(ServerViewProvider.ID_LABEL) + ") failed to load";
+ IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, msg, e);
+ JBossServerUIPlugin.getDefault().getLog().log(status);
+ }
+ }
+ serverViewExtensions = (ServerViewProvider[]) list.toArray(new ServerViewProvider[list.size()]);
+ }
+
+}
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -0,0 +1,24 @@
+package org.jboss.tools.wst.server.ui;
+
+import java.util.ArrayList;
+
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+
+public class ToolsServerUICore {
+
+ public static ServerViewProvider[] getEnabledViewProviders(IServer server) {
+ ServerViewProvider[] serverViewExtensions = getAllServerViewProviders();
+ ArrayList<ServerViewProvider> list = new ArrayList<ServerViewProvider>();
+ for( int i = 0; i < serverViewExtensions.length; i++ ) {
+ if( serverViewExtensions[i].isEnabled() && serverViewExtensions[i].supports(server)) {
+ list.add(serverViewExtensions[i]);
+ }
+ }
+ return list.toArray(new ServerViewProvider[list.size()]);
+ }
+
+ public static ServerViewProvider[] getAllServerViewProviders() {
+ return ExtensionManager.getDefault().getAllServerViewProviders();
+ }
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java (from rev 8065, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -0,0 +1,491 @@
+/**
+ * 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.tools.wst.server.ui.views.server;
+
+import java.util.ArrayList;
+import java.util.Properties;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelection;
+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.swt.widgets.Widget;
+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.IServerLifecycleListener;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.ServerUICore;
+import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
+import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.Messages;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.SimplePropertiesPropertySheetPage;
+import org.jboss.tools.wst.server.ui.ToolsServerUICore;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ExtensionTableViewer extends TreeViewer {
+
+ protected TableViewerPropertySheet propertySheet;
+ protected Action disableCategoryAction, refreshAction;
+ protected boolean suppressingRefresh = false;
+ public ExtensionTableViewer(Tree tree) {
+ super(tree);
+ setContentProvider(new ContentProviderDelegator());
+ setLabelProvider(new LabelProviderDelegator());
+ propertySheet = new TableViewerPropertySheet();
+ createActions();
+
+ UnitedServerListenerManager.getDefault().addListener(new UnitedServerListener() {
+ public void serverRemoved(IServer server) {
+ final IServer server2 = server;
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ Object o = getInput();
+ if( server2.equals(o)) {
+ setInput(null);
+ }
+ }
+ });
+ }
+ });
+ }
+
+ protected void createActions() {
+ 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);
+ refreshAction = new Action() {
+ public void run() {
+ Object o1 = ((IStructuredSelection)getSelection()).getFirstElement();
+ if( o1 != null ) {
+ // tell the delegate to refresh its model for the selected item, before we refresh the viewer
+ ServerViewProvider provider = o1 instanceof ServerViewProvider ? (ServerViewProvider)o1 : ((ContentWrapper)o1).getProvider();
+ if( provider != null )
+ provider.getDelegate().refreshModel(o1);
+ }
+ Object el = getSelectedElement();
+ if( el instanceof ServerViewProvider )
+ refresh(el);
+ else
+ refresh(((IStructuredSelection)getSelection()).getFirstElement());
+ }
+ };
+ refreshAction.setText("Refresh Item");
+ }
+
+ 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 ) {
+ if( ((ContentWrapper)other).getElement() == null )
+ return o == null;
+ return ((ContentWrapper)other).getElement().equals(o);
+ }
+ return false;
+ }
+
+ public int hashCode() {
+ if( o == null ) return super.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();
+ return ret;
+ }
+ if( obj instanceof ServerViewProvider) {
+ return ((ServerViewProvider)obj).getName();
+ }
+
+ if( obj instanceof ContentWrapper ) {
+ ContentWrapper wrapper = (ContentWrapper)obj;
+ return wrapper.getProvider().getDelegate().getLabelProvider().getText(wrapper.getElement());
+ }
+ return obj.toString();
+ }
+ public Image getImage(Object obj) {
+ if( obj instanceof JBossServer ) {
+ return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer());
+ }
+ 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;
+ }
+ }
+ protected class ContentProviderDelegator implements ITreeContentProvider {
+
+ public ContentProviderDelegator() {
+ }
+
+ public ContentWrapper[] wrap( Object[] elements, ServerViewProvider provider ) {
+ if( elements == null ) return new ContentWrapper[0];
+
+ 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) {
+ if( inputElement == null ) return new Object[0];
+ IServer tmp = (IServer)getInput();
+ if( tmp == null )
+ return new Object[0];
+ return ToolsServerUICore.getEnabledViewProviders(tmp);
+ }
+
+ public Object[] getChildren(Object parentElement) {
+ if( parentElement == null ) return new Object[0];
+
+ if( parentElement instanceof ServerViewProvider) {
+ 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 = parentWrapper.getProvider().getDelegate().getContentProvider().getChildren(parentWrapper.getElement());
+ } catch( Exception e) {
+ JBossServerUIPlugin.log("Error finding children of " + parentElement, e);
+ }
+ if( o == null )
+ return new Object[0];
+ return wrap(o, parentWrapper.getProvider());
+ }
+ return new Object[0];
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ if( element instanceof ServerViewProvider )
+ return ((ServerViewProvider)element).getDelegate().getContentProvider().hasChildren(element);
+ if( element instanceof ContentWrapper ) {
+ ContentWrapper parentWrapper = (ContentWrapper)element;
+ return parentWrapper.getProvider().getDelegate().getContentProvider().hasChildren(parentWrapper.getElement());
+ }
+ return getChildren(element).length > 0 ? true : false;
+ }
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ ServerViewProvider[] providers = ToolsServerUICore.
+ getEnabledViewProviders(newInput instanceof IServer ? (IServer)newInput : null);
+ for( int i = 0; i < providers.length; i++ ) {
+ try {
+ providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput, newInput);
+ } catch( Exception e) {
+ JBossServerUIPlugin.log("Error changing input to " + newInput, e);
+ }
+ }
+ }
+
+ }
+
+ public Object getRawElement(Object o) {
+ if( o instanceof ContentWrapper )
+ return ((ContentWrapper)o).getElement();
+ return o;
+ }
+
+ public Object[] getRawElements(IStructuredSelection selection) {
+ ArrayList<Object> tmp = new ArrayList<Object>();
+ Object[] obj = selection.toArray();
+ Object tmp2;
+ for( int i = 0; i < obj.length; i++ ) {
+ tmp2 = getRawElement(obj[i]);
+ if( tmp2 != null ) tmp.add(tmp2);
+ }
+ return (Object[]) tmp.toArray(new Object[tmp.size()]);
+ }
+
+ public ServerViewProvider getParentViewProvider(Object o) {
+ if( o instanceof ContentWrapper )
+ return ((ContentWrapper)o).getProvider();
+ return null;
+ }
+
+ public Object getSelectedElement() {
+ ISelection sel = getSelection();
+ if( sel instanceof IStructuredSelection ) {
+ Object o = ((IStructuredSelection)sel).getFirstElement();
+ if( o != null && o instanceof ContentWrapper ) {
+ o = ((ContentWrapper)o).getElement();
+ }
+ return o;
+ }
+ return null;
+ }
+
+ protected void fillSelectedContextMenu(Shell shell, IMenuManager mgr) {
+ ISelection sel = getSelection();
+ if (sel instanceof IStructuredSelection) {
+ ServerViewProvider provider = findProvider((IStructuredSelection)sel);
+ if (provider != null) {
+ Object[] selected = getRawElements((IStructuredSelection)sel);
+ provider.getDelegate().fillContextMenu(shell, mgr, selected);
+ }
+ }
+ }
+
+ protected ServerViewProvider findProvider(IStructuredSelection sel) {
+ Object[] selected = sel.toArray();
+ ServerViewProvider provider = null;
+ ServerViewProvider tmpProvider;
+ for( int i = 0; i < selected.length; i++ ) {
+ if( selected[i] instanceof ServerViewProvider ) {
+ tmpProvider = (ServerViewProvider)selected[i];
+ } else {
+ tmpProvider = getParentViewProvider(selected[i]);
+ }
+ if( provider == null )
+ provider = tmpProvider;
+ else if( tmpProvider != provider )
+ return null;
+ }
+ return provider;
+ }
+
+ protected void fillJBContextMenu(Shell shell, IMenuManager menu) {
+ Object selected = getSelectedElement();
+ menu.add(refreshAction);
+ if( selected instanceof ServerViewProvider ) {
+ menu.add(disableCategoryAction);
+ }
+
+ menu.add(new Separator());
+ }
+
+ public IPropertySheetPage getPropertySheet() {
+ return propertySheet;
+ }
+
+ public class TableViewerPropertySheet implements IPropertySheetPage {
+
+ private PageBook book;
+ private ArrayList<ServerViewProvider> addedControls = new ArrayList<ServerViewProvider>();
+ private SimplePropertiesPropertySheetPage topLevelPropertiesPage;
+
+ public void createControl(Composite parent) {
+ topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new TopLevelProperties());
+ book = new PageBook(parent, SWT.NONE);
+ addedControls.clear();
+ 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).getProvider());
+ } else /*if( selected instanceof ServerViewProvider ) {
+ page = getDelegatePage((ServerViewProvider)selected);
+ } else if( page == null ) */ {
+ page = topLevelPropertiesPage;
+ }
+ if( page != null ) {
+ page.selectionChanged(part, sel);
+ book.showPage(page.getControl());
+ }
+ }
+ }
+ private IPropertySheetPage getDelegatePage(ServerViewProvider provider) {
+ IPropertySheetPage returnSheet = null;
+ returnSheet = provider.getDelegate().getPropertySheetPage();
+ if( !addedControls.contains(provider) && returnSheet != null) {
+ 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());
+ }
+ 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() {
+ // The Loner
+ propertySheet.dispose();
+
+ ServerViewProvider[] providers = ToolsServerUICore.getAllServerViewProviders();
+ for( int i = 0; i < providers.length; i++ ) {
+ providers[i].dispose();
+ }
+ }
+
+
+ public void suppressingRefresh(Runnable runnable) {
+ boolean currentVal = suppressingRefresh;
+ suppressingRefresh = true;
+ runnable.run();
+ suppressingRefresh = currentVal;
+ }
+
+ public void refresh() {
+ refresh(null);
+ }
+ public void refresh(final Object element) {
+ if(!suppressingRefresh) {
+ try {
+ super.refresh(element);
+ } catch( Exception e ) {
+ JBossServerUIPlugin.log("Error refreshing view. ", e);
+ }
+ }
+ }
+
+ public boolean elementInTree(Object element) {
+ Widget[] w = super.findItems(element);
+ return w != null && w.length > 0;
+ }
+
+
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java (from rev 8065, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -0,0 +1,192 @@
+/**
+ * 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.tools.wst.server.ui.views.server;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+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.widgets.Composite;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class JBossServerView extends ViewPart {
+
+ public static final String VIEW_ID = "org.jboss.ide.eclipse.as.ui.views.JBossServerView";
+
+ private static final String TAG_SASHFORM_HEIGHT = "sashformHeight";
+
+ public static JBossServerView instance;
+ private static ArrayList<ISelectionChangedListener> serverFrameListeners = new ArrayList<ISelectionChangedListener>();
+ private static ArrayList<ISelectionChangedListener> extensionFrameListeners = new ArrayList<ISelectionChangedListener>();
+
+ public static JBossServerView getDefault() {
+ return instance;
+ }
+
+ public static void addServerFrameListener(ISelectionChangedListener listener) {
+ if( !serverFrameListeners.contains(listener))
+ serverFrameListeners.add(listener);
+ if( getDefault() != null )
+ getDefault().getServerFrame().getViewer().addSelectionChangedListener(listener);
+ }
+ public static void addExtensionFrameListener(ISelectionChangedListener listener) {
+ if( !extensionFrameListeners.contains(listener))
+ extensionFrameListeners.add(listener);
+ if( getDefault() != null )
+ getDefault().getExtensionFrame().getViewer().addSelectionChangedListener(listener);
+ }
+
+ public static void removeServerFrameListener(ISelectionChangedListener listener) {
+ if( serverFrameListeners.contains(listener))
+ serverFrameListeners.remove(listener);
+ if( getDefault() != null )
+ getDefault().getServerFrame().getViewer().removeSelectionChangedListener(listener);
+ }
+ public static void removeExtensionFrameListener(ISelectionChangedListener listener) {
+ if( extensionFrameListeners.contains(listener))
+ extensionFrameListeners.remove(listener);
+ if( getDefault() != null )
+ getDefault().getExtensionFrame().getViewer().removeSelectionChangedListener(listener);
+ }
+
+ public static interface IServerViewFrame {
+ public IAction[] getActionBarActions();
+ public int getDefaultSize();
+ public void refresh();
+ }
+
+ public JBossServerView() {
+ super();
+ instance = this;
+ }
+
+ private SashForm form;
+ private int[] sashRows;
+ private IMemento memento;
+
+ private IServerViewFrame[] frames;
+ private ServerFrame serverFrame;
+ private ServerExtensionFrame extensionFrame;
+
+ public void init(IViewSite site, IMemento memento) throws PartInitException {
+ super.init(site, memento);
+ ServerUIPlugin.getPreferences().setShowOnActivity(false);
+ this.memento = memento;
+ int sum = 0;
+ sashRows = new int[2];
+ for (int i = 0; i < sashRows.length; i++) {
+ sashRows[i] = 50;
+ if (memento != null) {
+ Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i);
+ if (in != null && in.intValue() > 5)
+ sashRows[i] = in.intValue();
+ }
+ sum += sashRows[i];
+ }
+ }
+
+ public void saveState(IMemento memento) {
+ super.saveState(memento);
+ int[] weights = form.getWeights();
+ for (int i = 0; i < weights.length; i++) {
+ if (weights[i] != 0)
+ memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]);
+ }
+ }
+
+ public void createPartControl(Composite parent) {
+ form = new SashForm(parent, SWT.VERTICAL);
+ form.setBackground(new Color(parent.getDisplay(), 255, 255, 255));
+ form.setLayout(new FillLayout());
+
+
+ Composite topWrapper = new Composite(form, SWT.NONE);
+ topWrapper.setLayout(new FillLayout());
+ serverFrame = new ServerFrame(topWrapper, this);
+
+ Composite bottomWrapper = new Composite(form, SWT.NONE);
+ bottomWrapper.setLayout(new FillLayout());
+ extensionFrame = new ServerExtensionFrame(bottomWrapper, this);
+
+
+ frames = new IServerViewFrame[] { serverFrame, extensionFrame };
+
+ // add toolbar buttons
+ IContributionManager cm = getViewSite().getActionBars().getToolBarManager();
+ for( int i = 0; i < frames.length; i++ ) {
+ IAction[] actions = frames[i].getActionBarActions();
+ for (int j = 0; j < actions.length - 1; j++)
+ cm.add(actions[j]);
+ }
+
+ form.setWeights(sashRows);
+
+
+ // if the extensions have already been created, add those listeners now.
+ Iterator<ISelectionChangedListener> k;
+ for(k = serverFrameListeners.iterator(); k.hasNext();)
+ serverFrame.getViewer().addSelectionChangedListener(k.next());
+ for(k = extensionFrameListeners.iterator(); k.hasNext();)
+ extensionFrame.getViewer().addSelectionChangedListener(k.next());
+ }
+
+ public void refreshAll() {
+ for( int i = 0; i < frames.length; i++ ) {
+ frames[i].refresh();
+ }
+ }
+
+ public ServerFrame getServerFrame() { return this.serverFrame; }
+ public ServerExtensionFrame getExtensionFrame() { return this.extensionFrame; }
+
+ public void setFocus() {
+ getExtensionFrame().getViewer().getTree().setFocus();
+ }
+
+ public IServer getSelectedServer() {
+ return serverFrame == null ? null : serverFrame.getSelectedServer();
+ }
+
+ public Object getAdapter(Class adaptor) {
+ if( adaptor == IPropertySheetPage.class) {
+ return extensionFrame.getViewer().getPropertySheet();
+ }
+ return super.getAdapter(adaptor);
+ }
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java (from rev 8065, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -0,0 +1,122 @@
+/**
+ * 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.tools.wst.server.ui.views.server;
+
+import org.eclipse.jface.action.IAction;
+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.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView.IServerViewFrame;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerExtensionFrame extends Composite implements IServerViewFrame {
+
+ private Tree jbTreeTable;
+ private ExtensionTableViewer jbViewer;
+ private JBossServerView view;
+ public ServerExtensionFrame(Composite parent, JBossServerView view) {
+ super(parent, SWT.NONE);
+ this.view = view;
+ setLayout(new FillLayout());
+ jbTreeTable = new Tree(this, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+ jbViewer = new ExtensionTableViewer(jbTreeTable);
+ view.getSite().setSelectionProvider(jbViewer);
+ addListeners();
+ doMenuStuff(parent);
+ }
+
+ 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.fillSelectedContextMenu(shell, mgr);
+ mgr.add(new Separator());
+ jbViewer.fillJBContextMenu(shell, mgr);
+ }
+ });
+ Menu menu = menuManager.createContextMenu(parent);
+ jbTreeTable.setMenu(menu);
+ }
+
+ public ExtensionTableViewer getViewer() {
+ return jbViewer;
+ }
+
+ public void refresh() {
+ jbViewer.refresh();
+ }
+
+ public void addListeners() {
+
+ /*
+ * Handles the selection of the server viewer which is embedded in my sashform
+ */
+ view.getServerFrame().getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ Object selection = ((TreeSelection)event.getSelection()).getFirstElement();
+ Object server = selection;
+ if( selection instanceof ModuleServer ) {
+ server = ((ModuleServer)selection).server;
+ }
+
+ if( selection == null ) return;
+ if( server != jbViewer.getInput()) {
+ // find the newest copy of the server
+ IServer tmp = ServerCore.findServer(((IServer)server).getId());
+ jbViewer.setInput(tmp);
+ } else {
+ jbViewer.refresh();
+ }
+ }
+
+ });
+ }
+
+
+ public IAction[] getActionBarActions() {
+ return new IAction[] {}; // none
+ }
+
+ public int getDefaultSize() {
+ return 0;
+ }
+ }
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java (from rev 8065, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -0,0 +1,345 @@
+/**
+ * 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.tools.wst.server.ui.views.server;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionManager;
+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.bindings.TriggerSequence;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+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.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.keys.IBindingService;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.core.internal.Trace;
+import org.eclipse.wst.server.ui.internal.ContextIds;
+import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
+import org.eclipse.wst.server.ui.internal.actions.NewServerWizardAction;
+import org.eclipse.wst.server.ui.internal.view.servers.CopyAction;
+import org.eclipse.wst.server.ui.internal.view.servers.DeleteAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ModuleSloshAction;
+import org.eclipse.wst.server.ui.internal.view.servers.OpenAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PasteAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PropertiesAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PublishAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PublishCleanAction;
+import org.eclipse.wst.server.ui.internal.view.servers.RenameAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ShowInConsoleAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ShowInDebugAction;
+import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
+import org.eclipse.wst.server.ui.internal.view.servers.StopAction;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView.IServerViewFrame;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerFrame extends Composite implements IServerViewFrame {
+
+ protected Action[] actions;
+ protected IWorkbenchPartSite site;
+ protected IViewSite viewSite;
+ protected Tree treeTable;
+ protected ServerTableViewer tableViewer;
+
+ // custom
+ protected Action editLaunchConfigAction, twiddleAction, newServerAction;
+
+ // wtp
+ protected Action actionModifyModules;
+ protected Action openAction, showInConsoleAction, showInDebugAction, propertiesAction;
+ protected Action copyAction, pasteAction, deleteAction, renameAction;
+
+ public ServerFrame(Composite parent, JBossServerView view) {
+ super(parent, SWT.BORDER);
+ setLayout(new FillLayout());
+ this.site = view.getSite();
+ this.viewSite = view.getViewSite();
+
+
+ int cols[] = new int[] {150, 100, 50};
+
+ treeTable = new Tree(this, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE);
+ treeTable.setHeaderVisible(true);
+ treeTable.setLinesVisible(false);
+ treeTable.setFont(parent.getFont());
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(treeTable, ContextIds.VIEW_SERVERS);
+
+ // add columns
+ TreeColumn column = new TreeColumn(treeTable, SWT.SINGLE);
+ column.setText(Messages.viewServer);
+ column.setWidth(cols[0]);
+
+ TreeColumn column2 = new TreeColumn(treeTable, SWT.SINGLE);
+ column2.setText(Messages.viewState);
+ column2.setWidth(cols[1]);
+
+ TreeColumn column3 = new TreeColumn(treeTable, SWT.SINGLE);
+ column3.setText(Messages.viewStatus);
+ column3.setWidth(cols[2]);
+
+ tableViewer = new ServerTableViewer(viewSite, treeTable);
+ initializeActions(tableViewer);
+
+ treeTable.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ try {
+ } catch (Exception e) {
+ viewSite.getActionBars().getStatusLineManager().setMessage(null, "");
+ }
+ }
+ public void widgetDefaultSelected(SelectionEvent event) {
+ try {
+ TreeItem item = treeTable.getSelection()[0];
+ Object data = item.getData();
+ if (!(data instanceof IServer))
+ return;
+ IServer server = (IServer) data;
+ ServerUIPlugin.editServer(server);
+ } catch (Exception e) {
+ Trace.trace(Trace.SEVERE, "Could not open server", e);
+ }
+ }
+ });
+
+ MenuManager menuManager = new MenuManager("#PopupMenu");
+ menuManager.setRemoveAllWhenShown(true);
+ final Shell shell = treeTable.getShell();
+ menuManager.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager mgr) {
+ fillContextMenu(shell, mgr);
+ }
+ });
+ Menu menu = menuManager.createContextMenu(parent);
+ treeTable.setMenu(menu);
+ site.registerContextMenu(menuManager, tableViewer);
+ site.setSelectionProvider(tableViewer);
+ }
+
+ protected void fillContextMenu(Shell shell, IMenuManager menu) {
+ if( getSelectedServer() != null ) {
+ cloneFill(shell, menu);
+ } else {
+ menu.add(newServerAction);
+ }
+ }
+
+ protected void cloneFill(Shell shell, IMenuManager menu) {
+
+ /* Show in ... */
+ String text = Messages.actionShowIn;
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ final IBindingService bindingService = (IBindingService) workbench
+ .getAdapter(IBindingService.class);
+ final TriggerSequence[] activeBindings = bindingService
+ .getActiveBindingsFor("org.eclipse.ui.navigate.showInQuickMenu");
+ if (activeBindings.length > 0) {
+ text += "\t" + activeBindings[0].format();
+ }
+
+ menu.add(newServerAction);
+ menu.add(openAction);
+
+ MenuManager showInMenu = new MenuManager(text);
+ showInMenu.add(showInConsoleAction);
+ showInMenu.add(showInDebugAction);
+ menu.add(showInMenu);
+ menu.add(new Separator());
+
+ menu.add(copyAction);
+ menu.add(pasteAction);
+ menu.add(deleteAction);
+ menu.add(renameAction);
+
+ menu.add(new Separator());
+
+ // server actions
+ for (int i = 0; i < actions.length; i++)
+ menu.add(actions[i]);
+
+ menu.add(new Separator());
+// menu.add(actionModifyModules);
+
+ menu.add(twiddleAction);
+ menu.add(editLaunchConfigAction);
+ menu.add(actionModifyModules);
+ twiddleAction.setEnabled(true);
+ editLaunchConfigAction.setEnabled(true);
+
+ }
+
+ public IServer getSelectedServer() {
+ Object o = ((IStructuredSelection)tableViewer.getSelection()).getFirstElement();
+ return (IServer)o;
+ }
+
+ public void initializeActions(ISelectionProvider provider) {
+ createWTPActions(provider);
+ createCustomActions();
+ }
+
+ protected void createWTPActions(ISelectionProvider provider) {
+ Shell shell = viewSite.getShell();
+ IActionBars actionBars = viewSite.getActionBars();
+
+ actions = new Action[6];
+ // create the start actions
+ actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug", actions[0]);
+ actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
+ actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
+
+ // create the stop action
+ actions[3] = new StopAction(shell, provider);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]);
+
+ // create the publish actions
+ actions[4] = new PublishAction(shell, provider);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish", actions[4]);
+ actions[5] = new PublishCleanAction(shell, provider);
+
+ // create the open action
+ openAction = new OpenAction(provider);
+ actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open", openAction);
+
+ // create copy, paste, and delete actions
+ pasteAction = new PasteAction(shell, provider, tableViewer.clipboard);
+ copyAction = new CopyAction(provider, tableViewer.clipboard, pasteAction);
+ deleteAction = new DeleteAction(shell, provider);
+ renameAction = new RenameAction(shell, tableViewer, provider);
+ actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
+ actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
+
+ // create the other actions
+ actionModifyModules = new ModuleSloshAction(shell, provider);
+ showInConsoleAction = new ShowInConsoleAction(provider);
+ showInDebugAction = new ShowInDebugAction(provider);
+
+ // create the properties action
+ propertiesAction = new PropertiesAction(shell, provider);
+ actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
+ }
+
+ protected void createCustomActions() {
+ newServerAction = new Action() {
+ public void run() {
+ IAction newServerAction = new NewServerWizardAction();
+ newServerAction.run();
+ }
+ };
+ newServerAction.setText("New Server");
+ newServerAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
+
+ editLaunchConfigAction = new Action() {
+ public void run() {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ try {
+ final Object selected = getSelectedServer();
+ IServer s = null;
+ if( selected instanceof JBossServer ) {
+ s = ((JBossServer)selected).getServer();
+ } else if( selected instanceof IServer ) {
+ s = (IServer)selected;
+ }
+
+ if( s != null ) {
+ ILaunchConfiguration launchConfig = ((Server) s).getLaunchConfiguration(true, null);
+ // TODO: use correct launch group
+ DebugUITools.openLaunchConfigurationPropertiesDialog(new Shell(), launchConfig, "org.eclipse.debug.ui.launchGroup.run");
+ }
+ } catch (CoreException ce) {
+ }
+ }
+ });
+ }
+ };
+ editLaunchConfigAction.setText(org.jboss.ide.eclipse.as.ui.Messages.EditLaunchConfigurationAction);
+ editLaunchConfigAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.IMG_JBOSS_CONFIGURATION));
+
+ twiddleAction = new Action() {
+ public void run() {
+ final IStructuredSelection selected = ((IStructuredSelection)tableViewer.getSelection());
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ TwiddleDialog dialog = new TwiddleDialog(tableViewer.getTree().getShell(), selected.getFirstElement());
+ dialog.open();
+ }
+ } );
+
+ }
+ };
+ twiddleAction.setText( org.jboss.ide.eclipse.as.ui.Messages.TwiddleServerAction);
+ twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE));
+
+ }
+
+ public ServerTableViewer getViewer() {
+ return tableViewer;
+ }
+
+ public void refresh() {
+ tableViewer.refresh();
+ }
+
+ public IAction[] getActionBarActions() {
+ return actions;
+ }
+
+ public int getDefaultSize() {
+ return 0;
+ }
+}
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java (from rev 8065, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java)
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -0,0 +1,389 @@
+package org.jboss.tools.wst.server.ui.views.server;
+/**
+ * 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.
+ */
+
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.wst.server.core.IPublishListener;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerLifecycleListener;
+import org.eclipse.wst.server.core.IServerListener;
+import org.eclipse.wst.server.core.IServerType;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.ServerEvent;
+import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.core.util.PublishAdapter;
+import org.eclipse.wst.server.ui.internal.Trace;
+import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager;
+import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider;
+/**
+ * Tree view showing servers and their associations.
+ * This is for the TOP window
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerTableViewer extends TreeViewer {
+ protected static final String ROOT = "root";
+
+ protected IServerLifecycleListener serverResourceListener;
+ protected IPublishListener publishListener;
+ protected IServerListener serverListener;
+
+ protected static Object deletedElement = null;
+
+ // servers that are currently publishing and starting
+ protected static List publishing = new ArrayList();
+ protected static List starting = new ArrayList();
+
+ protected ServerTableLabelProvider2 labelProvider;
+ protected Clipboard clipboard;
+
+ protected IViewSite viewSite;
+
+ protected class ServerTableLabelProvider2 extends ServerTableLabelProvider {
+ private int myCount = 0;
+ protected Image getStateImage(IServerType serverType, int state, String mode) {
+ return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode, myCount);
+ }
+ protected String getStateLabel(IServerType serverType, int state, String mode) {
+ return UIDecoratorManager.getUIDecorator(serverType).getStateLabel(state, mode, myCount);
+ }
+ protected void animate() {
+ myCount ++;
+ if (myCount > 2)
+ myCount = 0;
+ }
+
+ }
+
+ public class TrimmedServerContentProvider implements IStructuredContentProvider, ITreeContentProvider {
+ public Object[] getElements(Object element) {
+ return ServerCore.getServers();
+ }
+
+ public void inputChanged(Viewer theViewer, Object oldInput, Object newInput) {
+ // do nothing
+ }
+
+ public void dispose() {
+ // do nothing
+ }
+
+ public Object[] getChildren(Object element) {
+ return new Object[0];
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return false;
+ }
+ }
+
+ protected Thread thread = null;
+ protected boolean stopThread = false;
+
+ protected void startThread() {
+ stopThread = false;
+ if (thread != null)
+ return;
+
+ thread = new Thread("Servers View Animator") {
+ public void run() {
+ while (!stopThread) {
+ try {
+ labelProvider.animate();
+ final Object[] rootElements = ((ITreeContentProvider)getContentProvider()).getElements(null);
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ if (getTree() != null && !getTree().isDisposed())
+ update(rootElements, null);
+ }
+ });
+ Thread.sleep(250);
+ } catch (Exception e) {
+ Trace.trace(Trace.FINEST, "Error in animated server view", e);
+ }
+ thread = null;
+ }
+ }
+ };
+ thread.setDaemon(true);
+ thread.start();
+ }
+
+ protected void stopThread() {
+ stopThread = true;
+ }
+
+ /**
+ * ServerTableViewer constructor comment.
+ *
+ * @param view the view
+ * @param tree the tree
+ */
+ public ServerTableViewer(final IViewSite site, final Tree tree) {
+ super(tree);
+ this.viewSite = site;
+ clipboard = new Clipboard(tree.getDisplay());
+
+ setContentProvider(new TrimmedServerContentProvider());
+ labelProvider = new ServerTableLabelProvider2();
+ labelProvider.addListener(new ILabelProviderListener() {
+ public void labelProviderChanged(LabelProviderChangedEvent event) {
+ Object[] obj = event.getElements();
+ if (obj == null)
+ refresh(true);
+ else {
+ int size = obj.length;
+ for (int i = 0; i < size; i++)
+ refresh(obj[i], true);
+ }
+ }
+ });
+ setLabelProvider(labelProvider);
+ setSorter(new ViewerSorter() {
+ // empty
+ });
+
+ setInput(ROOT);
+ addListeners();
+ }
+
+ protected void addListeners() {
+ serverResourceListener = new IServerLifecycleListener() {
+ public void serverAdded(IServer server) {
+ addServer(server);
+ server.addServerListener(serverListener);
+ ((Server) server).addPublishListener(publishListener);
+ }
+ public void serverChanged(IServer server) {
+ refreshServer(server);
+ }
+ public void serverRemoved(IServer server) {
+ removeServer(server);
+ server.removeServerListener(serverListener);
+ ((Server) server).removePublishListener(publishListener);
+ }
+ };
+ ServerCore.addServerLifecycleListener(serverResourceListener);
+
+ publishListener = new PublishAdapter() {
+ public void publishStarted(IServer server) {
+ handlePublishChange(server, true);
+ }
+
+ public void publishFinished(IServer server, IStatus status) {
+ handlePublishChange(server, false);
+ }
+ };
+
+ serverListener = new IServerListener() {
+ public void serverChanged(ServerEvent event) {
+ if (event == null) {
+ return;
+ }
+ int eventKind = event.getKind();
+ IServer server = event.getServer();
+ if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
+ // server change event
+ if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
+ refreshServer(server);
+ int state = event.getState();
+ String id = server.getId();
+ if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
+ if (!starting.contains(id)) {
+ if (starting.isEmpty())
+ startThread();
+ starting.add(id);
+ }
+ } else {
+ if (starting.contains(id)) {
+ starting.remove(id);
+ if (starting.isEmpty())
+ stopThread();
+ }
+ }
+ } else
+ refreshServer(server);
+ } else if ((eventKind & ServerEvent.MODULE_CHANGE) != 0) {
+ // module change event
+ if ((eventKind & ServerEvent.STATE_CHANGE) != 0 || (eventKind & ServerEvent.PUBLISH_STATE_CHANGE) != 0) {
+ refreshServer(server);
+ }
+ }
+ }
+ };
+
+ // add listeners to servers
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ servers[i].addServerListener(serverListener);
+ ((Server) servers[i]).addPublishListener(publishListener);
+ }
+ }
+ }
+
+ protected void refreshServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ try {
+ refresh(server);
+
+ // This ensures the icons are updated in case of a publish or state change
+ ISelection sel = ServerTableViewer.this.getSelection();
+ ServerTableViewer.this.setSelection(sel);
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ });
+ }
+
+ protected void handleDispose(DisposeEvent event) {
+ stopThread();
+ //if (dsListener != null)
+ // view.getViewSite().getPage().removeSelectionListener(dsListener);
+
+ ServerCore.removeServerLifecycleListener(serverResourceListener);
+
+ // remove listeners from server
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ servers[i].removeServerListener(serverListener);
+ ((Server) servers[i]).removePublishListener(publishListener);
+ }
+ }
+
+ clipboard.dispose();
+ super.handleDispose(event);
+ }
+
+ /**
+ * Called when the publish state changes.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handlePublishChange(IServer server, boolean isPublishing) {
+ String serverId = server.getId();
+ if (isPublishing)
+ publishing.add(serverId);
+ else
+ publishing.remove(serverId);
+
+ refreshServer(server);
+ }
+
+ /**
+ *
+ */
+ protected void handleServerModulesChanged(IServer server2) {
+ if (server2 == null)
+ return;
+
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ if (server2.equals(servers[i]))
+ refresh(servers[i]);
+ }
+ }
+ }
+
+ /**
+ * Called when an element is added.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceAdded(IServer server) {
+ add(null, server);
+ }
+
+ /**
+ * Called when an element is changed.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceChanged(IServer server) {
+ refresh(server);
+ }
+
+ /**
+ * Called when an element is removed.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceRemoved(IServer server) {
+ remove(server);
+
+ String serverId = server.getId();
+ publishing.remove(serverId);
+
+ viewSite.getActionBars().getStatusLineManager().setMessage(null, null);
+ }
+
+ protected void addServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ add(ROOT, server);
+ }
+ });
+ }
+
+ protected void removeServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ remove(server);
+ }
+ });
+ }
+}
\ No newline at end of file
Copied: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages (from rev 8065, trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages)
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/JBossServersPreferencePage.java 2008-05-13 13:48:31 UTC (rev 8065)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -19,7 +19,7 @@
* 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.preferencepages;
+package org.jboss.tools.wst.server.ui.views.server.preferencepages;
import java.util.Collection;
import java.util.HashMap;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/ViewPreferencePage.java 2008-05-13 13:48:31 UTC (rev 8065)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -19,7 +19,7 @@
* 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.preferencepages;
+package org.jboss.tools.wst.server.ui.views.server.preferencepages;
import java.util.ArrayList;
import java.util.HashMap;
@@ -48,10 +48,10 @@
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.part.PageBook;
-import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.tools.wst.server.ui.ToolsServerUICore;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
@@ -226,7 +226,7 @@
TableColumn column3 = new TableColumn(table, SWT.NONE);
column3.setText(Messages.ViewPreferencePageDescription);
- providers = JBossServerUIPlugin.getDefault().getAllServerViewProviders();
+ providers = ToolsServerUICore.getAllServerViewProviders();
int minWidth = 0;
enabledButtons = new ArrayList<Control>();
@@ -392,7 +392,7 @@
- ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getAllServerViewProviders();
+ ServerViewProvider[] providers = ToolsServerUICore.getAllServerViewProviders();
for( int i = 0; i < providers.length; i++ ) {
Group g = new Group(book, SWT.NONE);
@@ -431,7 +431,7 @@
setLayout(new FormLayout());
Button enabled = new Button(this, SWT.CHECK);
enabled.setText(Messages.ViewPreferencePageEnabled);
- enabled.setSelection(provider.isEnabled());
+ enabled.setSelection(myProvider.isEnabled());
}
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/ViewProviderPreferenceComposite.java 2008-05-13 13:48:31 UTC (rev 8065)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java 2008-05-16 22:09:23 UTC (rev 8163)
@@ -19,7 +19,7 @@
* 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.preferencepages;
+package org.jboss.tools.wst.server.ui.views.server.preferencepages;
import org.eclipse.swt.widgets.Composite;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-05-16 20:38:12 UTC (rev 8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-05-16 22:09:23 UTC (rev 8163)
@@ -96,16 +96,16 @@
<extension
point="org.eclipse.ui.preferencePages">
<page
- category="org.jboss.ide.eclipse.ui.MainPreferencePage"
- class="org.jboss.ide.eclipse.as.ui.preferencepages.JBossServersPreferencePage"
+ category="org.eclipse.wst.server.ui.preferencePage"
+ class="org.jboss.tools.wst.server.ui.views.server.preferencepages.JBossServersPreferencePage"
id="org.jboss.ide.eclipse.as.ui.jbossServerPreferencePage"
name="JBoss Servers"/>
<page
- category="org.jboss.ide.eclipse.as.ui.jbossServerPreferencePage"
- class="org.jboss.ide.eclipse.as.ui.preferencepages.ViewPreferencePage"
+ category="org.eclipse.wst.server.ui.preferencePage"
+ class="org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewPreferencePage"
id="org.jboss.ide.eclipse.as.ui.jbossServerViewPrefPage"
- name="View"/>
+ name="JBoss Server View"/>
</extension>
@@ -129,7 +129,7 @@
<view
allowMultiple="false"
category="org.eclipse.wst.server.ui"
- class="org.jboss.ide.eclipse.as.ui.views.server.JBossServerView"
+ class="org.jboss.tools.wst.server.ui.views.server.JBossServerView"
icon="icons/jboss.gif"
id="org.jboss.ide.eclipse.as.ui.views.JBossServerView"
name="JBoss Server View"/>
17 years, 11 months