<product name="SLC" uid="org.argeo.slc.client.rcp.product" id="org.argeo.slc.client.rcp.product" application="org.argeo.slc.client.rcp.application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">
+
<configIni use="default">
</configIni>
<windowImages i16="icons/argeo-icon-256.png"/>
+
<launcher>
<solaris/>
<win useIco="false">
</win>
</launcher>
+
<vm>
</vm>
+
<plugins>
<plugin id="com.ibm.icu"/>
<plugin id="com.springsource.antlr"/>
<plugin id="com.springsource.bsh"/>
<plugin id="com.springsource.com.jcraft.jsch"/>
- <plugin id="com.springsource.com.jcraft.jzlib"/>
<plugin id="com.springsource.com.lowagie.text"/>
<plugin id="com.springsource.com.mysql.jdbc"/>
<plugin id="com.springsource.com.thoughtworks.xstream"/>
<plugin id="com.springsource.org.aopalliance"/>
<plugin id="com.springsource.org.apache.bsf"/>
<plugin id="com.springsource.org.apache.commons.beanutils"/>
- <plugin id="com.springsource.org.apache.commons.cli"/>
<plugin id="com.springsource.org.apache.commons.codec"/>
<plugin id="com.springsource.org.apache.commons.collections"/>
<plugin id="com.springsource.org.apache.commons.dbcp"/>
<plugin id="com.springsource.org.jgroups"/>
<plugin id="com.springsource.org.mortbay.jetty.server"/>
<plugin id="com.springsource.org.mortbay.util"/>
+ <plugin id="com.springsource.org.objectweb.asm"/>
<plugin id="com.springsource.org.postgresql.jdbc3"/>
<plugin id="com.springsource.org.quartz"/>
<plugin id="com.springsource.org.tmatesoft.svn"/>
<plugin id="com.springsource.slf4j.log4j" fragment="true"/>
<plugin id="com.springsource.slf4j.org.apache.commons.logging"/>
<plugin id="org.argeo.basic.nodeps"/>
+ <plugin id="org.argeo.dep.org.freecompany.redline"/>
<plugin id="org.argeo.dep.osgi.activemq"/>
<plugin id="org.argeo.dep.osgi.activemq.optional" fragment="true"/>
+ <plugin id="org.argeo.dep.osgi.commons.cli"/>
<plugin id="org.argeo.dep.osgi.commons.exec"/>
<plugin id="org.argeo.dep.osgi.directory.shared.asn.codec" fragment="true"/>
<plugin id="org.argeo.dep.osgi.geoapi"/>
<plugin id="org.argeo.dep.osgi.java3d"/>
<plugin id="org.argeo.dep.osgi.jsr275"/>
<plugin id="org.argeo.dep.osgi.jts"/>
- <plugin id="org.argeo.dep.osgi.maven.embedder"/>
<plugin id="org.argeo.dep.osgi.mina.filter.ssl" fragment="true"/>
+ <plugin id="org.argeo.dep.osgi.poi"/>
<plugin id="org.argeo.dep.osgi.springframework.ldap"/>
<plugin id="org.argeo.eclipse.ui"/>
- <plugin id="org.argeo.infra.core" fragment=""/>
- <plugin id="org.argeo.infra.security.services" fragment="true"/>
<plugin id="org.argeo.security.core"/>
<plugin id="org.argeo.security.manager.ldap"/>
<plugin id="org.argeo.security.services"/>
<plugin id="org.argeo.slc.client.agent"/>
<plugin id="org.argeo.slc.client.commons"/>
<plugin id="org.argeo.slc.client.core"/>
- <plugin id="org.argeo.slc.client.gis" fragment=""/>
+ <plugin id="org.argeo.slc.client.gis"/>
<plugin id="org.argeo.slc.client.hibernate"/>
<plugin id="org.argeo.slc.client.oxm"/>
<plugin id="org.argeo.slc.client.rcp"/>
<plugin id="org.argeo.slc.client.ui"/>
+ <plugin id="org.argeo.slc.client.ui.dist"/>
<plugin id="org.argeo.slc.core"/>
<plugin id="org.argeo.slc.demo.agent" fragment="true"/>
<plugin id="org.argeo.slc.demo.ant"/>
<plugin id="org.argeo.slc.detached"/>
<plugin id="org.argeo.slc.ext.activemq" fragment="true"/>
<plugin id="org.argeo.slc.gis.ext.dbcp" fragment="true"/>
- <plugin id="org.argeo.slc.gis.position.backend" fragment=""/>
- <plugin id="org.argeo.slc.gis.position.gpsbabel" fragment=""/>
+ <plugin id="org.argeo.slc.gis.position.backend"/>
+ <plugin id="org.argeo.slc.gis.position.gpsbabel"/>
<plugin id="org.argeo.slc.server"/>
<plugin id="org.argeo.slc.server.castor"/>
<plugin id="org.argeo.slc.server.h2"/>
<plugin id="org.argeo.slc.support.castor" fragment="true"/>
<plugin id="org.argeo.slc.support.gis"/>
<plugin id="org.argeo.slc.support.hibernate" fragment="true"/>
- <plugin id="org.argeo.slc.support.maven" fragment="true"/>
+ <plugin id="org.argeo.slc.support.maven"/>
<plugin id="org.argeo.slc.support.osgi"/>
<plugin id="org.argeo.slc.support.simple"/>
<plugin id="org.eclipse.core.commands"/>
<plugin id="org.springframework.osgi.extender"/>
<plugin id="org.springframework.osgi.io"/>
<plugin id="org.springframework.oxm"/>
+ <plugin id="org.springframework.security.acls" fragment="true"/>
<plugin id="org.springframework.security.core"/>
<plugin id="org.springframework.transaction"/>
<plugin id="org.springframework.web"/>
--- /dev/null
+package org.argeo.slc.client.ui.dist.views;
+
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.argeo.eclipse.ui.TreeParent;
+import org.argeo.slc.client.ui.dist.DistPlugin;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+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.ui.part.ViewPart;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+
+public class ModulesView extends ViewPart {
+ private TreeViewer viewer;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ viewer.setContentProvider(new ModulesContentProvider());
+ viewer.setLabelProvider(new ModulesLabelProvider());
+ viewer.setInput(DistPlugin.getBundleContext());
+ }
+
+ @Override
+ public void setFocus() {
+ viewer.getTree().setFocus();
+ }
+
+ private class ModulesContentProvider implements ITreeContentProvider {
+
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ public Object[] getChildren(Object parentElement) {
+ if (parentElement instanceof BundleContext) {
+ BundleContext bundleContext = (BundleContext) parentElement;
+ Bundle[] bundles = bundleContext.getBundles();
+ Set<ModuleNode> moduleNodes = new TreeSet<ModulesView.ModuleNode>();
+ for (Bundle bundle : bundles) {
+ if (bundle.getState() == Bundle.ACTIVE)
+ moduleNodes.add(new ModuleNode(bundle));
+ }
+ return moduleNodes.toArray();
+ } else {
+ return null;
+ }
+ }
+
+ public Object getParent(Object element) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return false;
+ }
+
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ // TODO Auto-generated method stub
+
+ }
+
+ }
+
+ private class ModulesLabelProvider extends LabelProvider implements
+ ITableLabelProvider {
+
+ public Image getColumnImage(Object element, int columnIndex) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getColumnText(Object element, int columnIndex) {
+ return getText(element);
+ }
+
+ }
+
+ private class ModuleNode extends TreeParent {
+ private final Bundle bundle;
+
+ public ModuleNode(Bundle bundle) {
+ super(bundle.getSymbolicName());
+ this.bundle = bundle;
+ }
+
+ public Bundle getBundle() {
+ return bundle;
+ }
+
+ }
+}