Author: jawi
Date: Wed Apr 4 06:43:45 2012
New Revision: 1309263
URL: http://svn.apache.org/viewvc?rev=1309263&view=rev
Log:
ACE-246: ensure the delete-target button is disabled for unregistered targets.
Modified:
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
Modified:
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
URL:
http://svn.apache.org/viewvc/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java?rev=1309263&r1=1309262&r2=1309263&view=diff
==============================================================================
---
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
(original)
+++
ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
Wed Apr 4 06:43:45 2012
@@ -68,6 +68,7 @@ import org.osgi.service.useradmin.User;
import org.osgi.service.useradmin.UserAdmin;
import com.vaadin.data.Item;
+import com.vaadin.data.Property;
import com.vaadin.event.ItemClickEvent;
import com.vaadin.event.ItemClickEvent.ItemClickListener;
import com.vaadin.event.Transferable;
@@ -320,8 +321,7 @@ public class VaadinClient extends com.va
m_featuresPanel.addListener(m_associations.createSelectionListener(m_featuresPanel,
m_featureRepository,
new Class[] { ArtifactObject.class }, new Class[] {
DistributionObject.class, TargetObject.class },
new Table[] { m_artifactsPanel, m_distributionsPanel,
m_targetsPanel }));
- m_distributionsPanel
-
.addListener(m_associations.createSelectionListener(m_distributionsPanel,
m_distributionRepository,
+
m_distributionsPanel.addListener(m_associations.createSelectionListener(m_distributionsPanel,
m_distributionRepository,
new Class[] { FeatureObject.class, ArtifactObject.class }, new
Class[] { TargetObject.class },
new Table[] { m_artifactsPanel, m_featuresPanel,
m_targetsPanel }));
m_targetsPanel.addListener(m_associations.createSelectionListener(m_targetsPanel,
m_statefulTargetRepository,
@@ -554,8 +554,7 @@ public class VaadinClient extends com.va
}
};
buttons.addComponent(removeLinkButton);
- buttons.addComponent(new RemoveItemButton<ArtifactObject,
ArtifactRepository>(artifact,
- m_artifactRepository));
+ buttons.addComponent(new RemoveItemButton(artifact,
m_artifactRepository));
item.getItemProperty(ACTIONS).setValue(buttons);
}
}
@@ -632,8 +631,7 @@ public class VaadinClient extends com.va
};
HorizontalLayout buttons = new HorizontalLayout();
buttons.addComponent(removeLinkButton);
- buttons.addComponent(new RemoveItemButton<FeatureObject,
FeatureRepository>(feature,
- m_featureRepository));
+ buttons.addComponent(new RemoveItemButton(feature,
m_featureRepository));
item.getItemProperty(ACTIONS).setValue(buttons);
}
}
@@ -682,10 +680,11 @@ public class VaadinClient extends com.va
protected abstract void removeLinkFromRight(REPO_OBJECT object,
RepositoryObject other);
}
- public class RemoveItemButton<REPO_OBJECT extends RepositoryObject, REPO
extends ObjectRepository> extends Button {
- public RemoveItemButton(final REPO_OBJECT object, final REPO
repository) {
+ public class RemoveItemButton extends Button {
+ public RemoveItemButton(final RepositoryObject object, final
ObjectRepository repository) {
super("x");
setStyleName("small");
+
addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
try {
@@ -734,8 +733,7 @@ public class VaadinClient extends com.va
if (item != null) {
item.getItemProperty(OBJECT_NAME).setValue(distribution.getName());
item.getItemProperty(OBJECT_DESCRIPTION).setValue(distribution.getDescription());
- Button removeLinkButton = new
RemoveLinkButton<DistributionObject>(distribution, m_featuresPanel,
- m_targetsPanel) {
+ Button removeLinkButton = new
RemoveLinkButton<DistributionObject>(distribution, m_featuresPanel,
m_targetsPanel) {
@Override
protected void removeLinkFromLeft(DistributionObject
object, RepositoryObject other) {
List<Feature2DistributionAssociation> associations
= object
@@ -760,8 +758,7 @@ public class VaadinClient extends com.va
};
HorizontalLayout buttons = new HorizontalLayout();
buttons.addComponent(removeLinkButton);
- buttons.addComponent(new
RemoveItemButton<DistributionObject, DistributionRepository>(distribution,
- m_distributionRepository));
+ buttons.addComponent(new RemoveItemButton(distribution,
m_distributionRepository));
item.getItemProperty(ACTIONS).setValue(buttons);
}
}
@@ -781,6 +778,8 @@ public class VaadinClient extends com.va
private ObjectPanel createTargetsPanel(Window main) {
return new ObjectPanel(m_associations, "Target",
UIExtensionFactory.EXTENSION_POINT_VALUE_TARGET, main, true) {
+ private RemoveItemButton m_deleteButton;
+
@Override
protected RepositoryObject getFromId(String id) {
return getTarget(id);
@@ -794,8 +793,7 @@ public class VaadinClient extends com.va
}
public void handleEvent(org.osgi.service.event.Event event) {
- StatefulTargetObject statefulTarget = (StatefulTargetObject)
event
- .getProperty(StatefulTargetObject.EVENT_ENTITY);
+ StatefulTargetObject statefulTarget = (StatefulTargetObject)
event.getProperty(StatefulTargetObject.EVENT_ENTITY);
String topic = (String)
event.getProperty(EventConstants.EVENT_TOPIC);
if (StatefulTargetObject.TOPIC_ADDED.equals(topic)) {
add(statefulTarget);
@@ -828,9 +826,12 @@ public class VaadinClient extends com.va
protected void
removeLinkFromRight(StatefulTargetObject object, RepositoryObject other) {
}
};
+ m_deleteButton = new RemoveItemButton(statefulTarget,
m_statefulTargetRepository);
+ m_deleteButton.setEnabled(statefulTarget.isRegistered());
+
HorizontalLayout buttons = new HorizontalLayout();
buttons.addComponent(removeLinkButton);
- buttons.addComponent(new
RemoveItemButton<StatefulTargetObject,
StatefulTargetRepository>(statefulTarget, m_statefulTargetRepository));
+ buttons.addComponent(m_deleteButton);
item.getItemProperty(ACTIONS).setValue(buttons);
}
}
@@ -839,6 +840,8 @@ public class VaadinClient extends com.va
Item item = getItem(statefulTarget.getDefinition());
if (item != null) {
item.getItemProperty(OBJECT_DESCRIPTION).setValue("");
+
+ m_deleteButton.setEnabled(statefulTarget.isRegistered());
}
}
@@ -1116,25 +1119,32 @@ public class VaadinClient extends com.va
public abstract class ObjectPanel extends Table implements EventHandler {
public static final String ACTIONS = "actions";
- protected Table m_table = this;
- protected Associations m_associations;
- private List<UIExtensionFactoryHolder> m_extensionFactories = new
ArrayList<UIExtensionFactoryHolder>();
+
+ protected final Table m_table;
+ protected final Associations m_associations;
+
+ private final List<UIExtensionFactoryHolder> m_extensionFactories;
private final String m_extensionPoint;
- public ObjectPanel(Associations associations, final String name,
String extensionPoint, final Window main,
- boolean hasEdit) {
+ public ObjectPanel(Associations associations, final String name,
String extensionPoint, final Window main, final boolean hasEdit) {
super(name + "s");
+
+ m_table = this;
+ m_extensionFactories = new ArrayList<UIExtensionFactoryHolder>();
m_associations = associations;
m_extensionPoint = extensionPoint;
+
addContainerProperty(OBJECT_NAME, String.class, null);
addContainerProperty(OBJECT_DESCRIPTION, String.class, null);
addContainerProperty(ACTIONS, HorizontalLayout.class, null);
+
setSizeFull();
setCellStyleGenerator(m_associations.createCellStyleGenerator());
setSelectable(true);
setMultiSelect(true);
setImmediate(true);
setDragMode(TableDragMode.MULTIROW);
+
if (hasEdit) {
addListener(new ItemClickListener() {
public void itemClick(ItemClickEvent event) {
@@ -1151,6 +1161,7 @@ public class VaadinClient extends com.va
public void init(Component component) {
populate();
+
DependencyManager dm = component.getDependencyManager();
component.add(dm
.createServiceDependency()