You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2011/01/23 02:34:18 UTC
svn commit: r1062307 - in
/incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui:
UIExtensionFactory.java vaadin/VaadinClient.java
Author: marrs
Date: Sun Jan 23 01:34:18 2011
New Revision: 1062307
URL: http://svn.apache.org/viewvc?rev=1062307&view=rev
Log:
Added extension points for items in each of the four columns, so you can add your own components that work on these items.
Modified:
incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/UIExtensionFactory.java
incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
Modified: incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/UIExtensionFactory.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/UIExtensionFactory.java?rev=1062307&r1=1062306&r2=1062307&view=diff
==============================================================================
--- incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/UIExtensionFactory.java (original)
+++ incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/UIExtensionFactory.java Sun Jan 23 01:34:18 2011
@@ -23,10 +23,15 @@ import java.util.Map;
import com.vaadin.ui.Component;
/**
- * Creates components for named extension points in the Vaadin UI.
+ * Creates components for named extension points in the Vaadin UI. Extension factories
+ * are used throughout the UI to allow other bundles to contribute features.
*/
public interface UIExtensionFactory {
- public static final String EXTENSION_POINT = "extension_point";
+ public static final String EXTENSION_POINT_KEY = "extension_point";
+ public static final Object EXTENSION_POINT_VALUE_ARTIFACT = "artifact";
+ public static final Object EXTENSION_POINT_VALUE_FEATURE = "feature";
+ public static final Object EXTENSION_POINT_VALUE_DISTRIBUTION = "distribution";
+ public static final Object EXTENSION_POINT_VALUE_TARGET = "target";
/**
* Creates a UI component for use in the extension point. The contents of the
Modified: incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java?rev=1062307&r1=1062306&r2=1062307&view=diff
==============================================================================
--- incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java (original)
+++ incubator/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java Sun Jan 23 01:34:18 2011
@@ -517,7 +517,22 @@ public class VaadinClient extends com.va
protected RepositoryObject getFromId(String id) {
return getArtifact(id);
}
- private void init() {
+ private void init(Component component) {
+ populate();
+ DependencyManager dm = component.getDependencyManager();
+ component.add(dm.createServiceDependency()
+ .setInstanceBound(true)
+ .setService(UIExtensionFactory.class, "(" + UIExtensionFactory.EXTENSION_POINT_KEY + "=" + UIExtensionFactory.EXTENSION_POINT_VALUE_ARTIFACT + ")")
+ .setCallbacks("addExtension", "removeExtension")
+ );
+ }
+ private List<UIExtensionFactory> m_factories = new ArrayList<UIExtensionFactory>();
+ public void addExtension(UIExtensionFactory factory) {
+ m_factories.add(factory);
+ populate();
+ }
+ public void removeExtension(UIExtensionFactory factory) {
+ m_factories.remove(factory);
populate();
}
public void populate() {
@@ -572,6 +587,12 @@ public class VaadinClient extends com.va
buttons.addComponent(removeLinkButton);
}
buttons.addComponent(new RemoveItemButton<ArtifactObject, ArtifactRepository>(artifact, m_artifactRepository));
+ Map<String, Object> context = new HashMap<String, Object>();
+ context.put("object", artifact);
+ for (UIExtensionFactory factory : m_factories) {
+ com.vaadin.ui.Component component = factory.create(context);
+ buttons.addComponent(component);
+ }
item.getItemProperty(ACTIONS).setValue(buttons);
}
@@ -591,7 +612,22 @@ public class VaadinClient extends com.va
protected RepositoryObject getFromId(String id) {
return getFeature(id);
}
- private void init() {
+ private void init(Component component) {
+ populate();
+ DependencyManager dm = component.getDependencyManager();
+ component.add(dm.createServiceDependency()
+ .setInstanceBound(true)
+ .setService(UIExtensionFactory.class, "(" + UIExtensionFactory.EXTENSION_POINT_KEY + "=" + UIExtensionFactory.EXTENSION_POINT_VALUE_FEATURE + ")")
+ .setCallbacks("addExtension", "removeExtension")
+ );
+ }
+ private List<UIExtensionFactory> m_factories = new ArrayList<UIExtensionFactory>();
+ public void addExtension(UIExtensionFactory factory) {
+ m_factories.add(factory);
+ populate();
+ }
+ public void removeExtension(UIExtensionFactory factory) {
+ m_factories.remove(factory);
populate();
}
public void populate() {
@@ -644,6 +680,12 @@ public class VaadinClient extends com.va
HorizontalLayout buttons = new HorizontalLayout();
buttons.addComponent(removeLinkButton);
buttons.addComponent(new RemoveItemButton<GroupObject, GroupRepository>(feature, m_featureRepository));
+ Map<String, Object> context = new HashMap<String, Object>();
+ context.put("object", feature);
+ for (UIExtensionFactory factory : m_factories) {
+ com.vaadin.ui.Component component = factory.create(context);
+ buttons.addComponent(component);
+ }
item.getItemProperty(ACTIONS).setValue(buttons);
}
private void change(GroupObject go) {
@@ -707,7 +749,22 @@ public class VaadinClient extends com.va
protected RepositoryObject getFromId(String id) {
return getDistribution(id);
}
- private void init() {
+ private void init(Component component) {
+ populate();
+ DependencyManager dm = component.getDependencyManager();
+ component.add(dm.createServiceDependency()
+ .setInstanceBound(true)
+ .setService(UIExtensionFactory.class, "(" + UIExtensionFactory.EXTENSION_POINT_KEY + "=" + UIExtensionFactory.EXTENSION_POINT_VALUE_DISTRIBUTION + ")")
+ .setCallbacks("addExtension", "removeExtension")
+ );
+ }
+ private List<UIExtensionFactory> m_factories = new ArrayList<UIExtensionFactory>();
+ public void addExtension(UIExtensionFactory factory) {
+ m_factories.add(factory);
+ populate();
+ }
+ public void removeExtension(UIExtensionFactory factory) {
+ m_factories.remove(factory);
populate();
}
public void populate() {
@@ -759,6 +816,12 @@ public class VaadinClient extends com.va
HorizontalLayout buttons = new HorizontalLayout();
buttons.addComponent(removeLinkButton);
buttons.addComponent(new RemoveItemButton<LicenseObject, LicenseRepository>(distribution, m_distributionRepository));
+ Map<String, Object> context = new HashMap<String, Object>();
+ context.put("object", distribution);
+ for (UIExtensionFactory factory : m_factories) {
+ com.vaadin.ui.Component component = factory.create(context);
+ buttons.addComponent(component);
+ }
item.getItemProperty(ACTIONS).setValue(buttons);
}
private void change(LicenseObject distribution) {
@@ -782,7 +845,7 @@ public class VaadinClient extends com.va
DependencyManager dm = component.getDependencyManager();
component.add(dm.createServiceDependency()
.setInstanceBound(true)
- .setService(UIExtensionFactory.class)
+ .setService(UIExtensionFactory.class, "(" + UIExtensionFactory.EXTENSION_POINT_KEY + "=" + UIExtensionFactory.EXTENSION_POINT_VALUE_TARGET + ")")
.setCallbacks("addExtension", "removeExtension")
);
}
@@ -817,7 +880,7 @@ public class VaadinClient extends com.va
private void add(StatefulGatewayObject statefulTarget) {
Item item = addItem(statefulTarget.getID());
item.getItemProperty(OBJECT_NAME).setValue(statefulTarget.getID());
- item.getItemProperty(OBJECT_DESCRIPTION).setValue("TODO");
+ item.getItemProperty(OBJECT_DESCRIPTION).setValue("");
Button removeLinkButton = new RemoveLinkButton<StatefulGatewayObject>(statefulTarget, m_distributionsPanel, null) {
@Override
protected void removeLinkFromLeft(StatefulGatewayObject object, RepositoryObject other) {
@@ -848,7 +911,7 @@ public class VaadinClient extends com.va
}
private void change(StatefulGatewayObject statefulTarget) {
Item item = getItem(statefulTarget.getID());
- item.getItemProperty(OBJECT_DESCRIPTION).setValue("TODO");
+ item.getItemProperty(OBJECT_DESCRIPTION).setValue("");
}
private void remove(StatefulGatewayObject statefulTarget) {
removeItem(statefulTarget.getID());