You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ja...@apache.org on 2012/04/06 14:34:14 UTC

svn commit: r1310301 - in /ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin: VaadinClient.java component/BaseObjectPanel.java component/TargetsPanel.java

Author: jawi
Date: Fri Apr  6 12:34:13 2012
New Revision: 1310301

URL: http://svn.apache.org/viewvc?rev=1310301&view=rev
Log:
ACE-248: also listen for all target object events; as they contain valuable information as well.

Modified:
    ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/VaadinClient.java
    ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/BaseObjectPanel.java
    ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/TargetsPanel.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=1310301&r1=1310300&r2=1310301&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 Fri Apr  6 12:34:13 2012
@@ -423,7 +423,7 @@ public class VaadinClient extends com.va
         addListener(m_artifactsPanel, ArtifactObject.TOPIC_ALL, RepositoryAdmin.TOPIC_STATUSCHANGED);
         addListener(m_featuresPanel, FeatureObject.TOPIC_ALL, RepositoryAdmin.TOPIC_STATUSCHANGED);
         addListener(m_distributionsPanel, DistributionObject.TOPIC_ALL, RepositoryAdmin.TOPIC_STATUSCHANGED);
-        addListener(m_targetsPanel, StatefulTargetObject.TOPIC_ALL, RepositoryAdmin.TOPIC_STATUSCHANGED);
+        addListener(m_targetsPanel, StatefulTargetObject.TOPIC_ALL, TargetObject.TOPIC_ALL, RepositoryAdmin.TOPIC_STATUSCHANGED);
 
         m_mainWindow.addComponent(m_grid);
     }

Modified: ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/BaseObjectPanel.java
URL: http://svn.apache.org/viewvc/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/BaseObjectPanel.java?rev=1310301&r1=1310300&r2=1310301&view=diff
==============================================================================
--- ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/BaseObjectPanel.java (original)
+++ ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/BaseObjectPanel.java Fri Apr  6 12:34:13 2012
@@ -248,7 +248,7 @@ abstract class BaseObjectPanel<REPO_OBJ 
         synchronized (getApplication()) {
             if (isSupportedEntity(entity)) {
                 try {
-                    handleEvent(topic, (REPO_OBJ) entity, event);
+                    handleEvent(topic, entity, event);
                 }
                 finally {
                     refreshRenderedCells();
@@ -431,17 +431,6 @@ abstract class BaseObjectPanel<REPO_OBJ 
     }
 
     /**
-     * @param topic the topic of the event;
-     * @param entity the entity of the event;
-     * @param event the original event.
-     * 
-     * @see org.osgi.service.event.EventHandler#handleEvent(org.osgi.service.event.Event)
-     */
-    protected void handleEvent(String topic, REPO_OBJ entity, org.osgi.service.event.Event event) {
-        // Nop...
-    }
-
-    /**
      * Does the actual removal of the left-hand side associations for a given repository object.
      * 
      * @param object the repository object to remove the left-hand side associations;
@@ -464,6 +453,16 @@ abstract class BaseObjectPanel<REPO_OBJ 
     }
 
     /**
+     * Converts a table-id back to a concrete {@link RepositoryObject}.
+     * 
+     * @param id the identifier of the {@link RepositoryObject}, cannot be <code>null</code>.
+     * @return a {@link RepositoryObject} instance for the given ID, can be <code>null</code> in case no such object is found.
+     */
+    protected final REPO_OBJ getFromId(String id) {
+        return getRepository().get(id);
+    }
+
+    /**
      * Returns the actual repository for objects.
      * 
      * @return the actual repository for obtaining the repository objects, cannot be <code>null</code>.
@@ -500,6 +499,17 @@ abstract class BaseObjectPanel<REPO_OBJ 
     }
 
     /**
+     * @param topic the topic of the event;
+     * @param entity the entity of the event;
+     * @param event the original event.
+     * 
+     * @see org.osgi.service.event.EventHandler#handleEvent(org.osgi.service.event.Event)
+     */
+    protected void handleEvent(String topic, RepositoryObject entity, org.osgi.service.event.Event event) {
+        // Nop...
+    }
+
+    /**
      * Returns whether the given {@link RepositoryObject} can be handled by this panel.
      * 
      * @param entity the entity to test, cannot be <code>null</code>.
@@ -568,16 +578,6 @@ abstract class BaseObjectPanel<REPO_OBJ 
     }
 
     /**
-     * Converts a table-id back to a concrete {@link RepositoryObject}.
-     * 
-     * @param id the identifier of the {@link RepositoryObject}, cannot be <code>null</code>.
-     * @return a {@link RepositoryObject} instance for the given ID, can be <code>null</code> in case no such object is found.
-     */
-    private REPO_OBJ getFromId(String id) {
-        return getRepository().get(id);
-    }
-
-    /**
      * Shows an edit window for the given named object.
      * 
      * @param object the named object to edit;

Modified: ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/TargetsPanel.java
URL: http://svn.apache.org/viewvc/ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/TargetsPanel.java?rev=1310301&r1=1310300&r2=1310301&view=diff
==============================================================================
--- ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/TargetsPanel.java (original)
+++ ace/trunk/ace-webui-vaadin/src/main/java/org/apache/ace/webui/vaadin/component/TargetsPanel.java Fri Apr  6 12:34:13 2012
@@ -20,11 +20,11 @@ package org.apache.ace.webui.vaadin.comp
 
 import java.util.List;
 
-import org.apache.ace.client.repository.RepositoryAdmin;
 import org.apache.ace.client.repository.RepositoryObject;
 import org.apache.ace.client.repository.RepositoryObject.WorkingState;
 import org.apache.ace.client.repository.object.Distribution2TargetAssociation;
 import org.apache.ace.client.repository.object.DistributionObject;
+import org.apache.ace.client.repository.object.TargetObject;
 import org.apache.ace.client.repository.stateful.StatefulTargetObject;
 import org.apache.ace.client.repository.stateful.StatefulTargetRepository;
 import org.apache.ace.webui.UIExtensionFactory;
@@ -113,16 +113,15 @@ public abstract class TargetsPanel exten
     /**
      * {@inheritDoc}
      */
-    protected void handleEvent(String topic, StatefulTargetObject statefulTarget, org.osgi.service.event.Event event) {
+    protected void handleEvent(String topic, RepositoryObject entity, org.osgi.service.event.Event event) {
+        StatefulTargetObject statefulTarget = asStatefulTargetObject(entity);
         if (StatefulTargetObject.TOPIC_ADDED.equals(topic)) {
             add(statefulTarget);
         }
         if (StatefulTargetObject.TOPIC_REMOVED.equals(topic)) {
             remove(statefulTarget);
         }
-        if (StatefulTargetObject.TOPIC_CHANGED.equals(topic) || StatefulTargetObject.TOPIC_STATUS_CHANGED.equals(topic)
-            || StatefulTargetObject.TOPIC_AUDITEVENTS_CHANGED.equals(topic)
-            || RepositoryAdmin.TOPIC_STATUSCHANGED.equals(topic)) {
+        if (topic.endsWith("CHANGED")) {
             update(statefulTarget);
         }
     }
@@ -132,7 +131,7 @@ public abstract class TargetsPanel exten
      */
     @Override
     protected boolean isSupportedEntity(RepositoryObject entity) {
-        return entity instanceof StatefulTargetObject;
+        return (entity instanceof StatefulTargetObject) || (entity instanceof TargetObject);
     }
 
     /**
@@ -179,4 +178,16 @@ public abstract class TargetsPanel exten
         Resource res = createIconResource("target_store_" + name);
         return createIcon(name, res);
     }
+
+    /**
+     * 
+     * @param entity
+     * @return
+     */
+    private StatefulTargetObject asStatefulTargetObject(RepositoryObject entity) {
+        if (entity instanceof StatefulTargetObject) {
+            return (StatefulTargetObject) entity;
+        }
+        return getFromId(((TargetObject) entity).getDefinition());
+    }
 }