Graphics: remove useless test to improve speed with big number of objects 59/10059/2
Calixte DENIZET [Wed, 19 Dec 2012 10:37:25 +0000 (11:37 +0100)]
Change-Id: I710e1eaa27bf1c94778cc784d37fff4e2345931c

scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicController/GraphicController.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObject.java

index 9915aa7..6ad8f86 100644 (file)
@@ -253,8 +253,8 @@ public class GraphicController {
      * @param id the created object's id
      */
     public void objectCreated(final String id) {
-        INFO("### Create object : "+id);
-        INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__));
+        //INFO("### Create object : "+id);
+        //INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__));
         Vector<Runnable> broadCastVector= new Vector<Runnable>();
 
         try {
@@ -279,9 +279,9 @@ public class GraphicController {
      * @param prop the property that has been updated
      */
     public void objectUpdate(final String id, final int prop) {
-        INFO("### Update object : "+id);
-        INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__));
-        INFO("### prop is : " + prop);
+        //INFO("### Update object : "+id);
+        //INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__));
+        //INFO("### prop is : " + prop);
 
         Vector<Runnable> broadCastVector= new Vector<Runnable>();
         try {
@@ -305,8 +305,8 @@ public class GraphicController {
      * @param id the deleted object's id
      */
     public void objectDeleted(final String id) {
-        INFO("### Delete object : "+id);
-        INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__));
+        //INFO("### Delete object : "+id);
+        //INFO("### type is : " + getProperty(id, GraphicObjectProperties.__GO_TYPE__));
         Vector<Runnable> broadCastVector= new Vector<Runnable>();
 
         try {
@@ -365,7 +365,8 @@ public class GraphicController {
             objectUpdate(parentId, GraphicObjectProperties.__GO_CHILDREN__);
         }
 
-        objectUpdate(childId, GraphicObjectProperties.__GO_PARENT__);
+       // Useless (already done in setProperty(childId, GraphicObjectProperties.__GO_PARENT__, parentId);)
+        //objectUpdate(childId, GraphicObjectProperties.__GO_PARENT__);
     }
 
     /**
index 929fb26..bbaf10a 100644 (file)
@@ -280,45 +280,51 @@ public abstract class GraphicObject implements Cloneable {
      * @return the property value
      */
     public Object getProperty(Object property) {
-        if (property == GraphicObjectPropertyType.PARENT) {
+        if (!(property instanceof GraphicObjectPropertyType)) {
+            return null;
+        }
+
+        GraphicObjectPropertyType p = (GraphicObjectPropertyType) property;
+        switch (p) {
+        case PARENT:
             return getParent();
-        } else if (property == GraphicObjectPropertyType.CHILDREN) {
+        case CHILDREN:
             return getChildren();
-        } else if (property == GraphicObjectPropertyType.CHILDREN_COUNT) {
-            return getChildren().length;
-        } else if (property == GraphicObjectPropertyType.VALID) {
+        case CHILDREN_COUNT:
+            return children.size();
+        case VALID:
             return isValid();
-        } else if (property == GraphicObjectPropertyType.HIDDEN) {
+        case HIDDEN:
             return isHidden();
-        } else if (property == GraphicObjectPropertyType.VISIBLE) {
+        case VISIBLE:
             return getVisible();
-        } else if (property == GraphicObjectPropertyType.USERDATA) {
+        case USERDATA:
             return getUserData();
-        } else if (property == GraphicObjectPropertyType.USERDATASIZE) {
+        case USERDATASIZE:
             return getUserDataSize();
-        } else if (property == GraphicObjectPropertyType.PARENT_FIGURE) {
+        case PARENT_FIGURE:
             return getParentFigure();
-        } else if (property == GraphicObjectPropertyType.PARENT_AXES) {
+        case PARENT_AXES:
             return getParentAxes();
-        } else if (property == GraphicObjectPropertyType.HASLEGENDCHILD) {
+        case HASLEGENDCHILD:
             return getHasLegendChild();
-        } else if (property == GraphicObjectPropertyType.LEGENDCHILD) {
+        case LEGENDCHILD:
             return getLegendChild();
-        } else if (property == GraphicObjectPropertyType.SELECTEDCHILD) {
+        case SELECTEDCHILD:
             return getSelectedChild();
-        } else if (property == GraphicObjectPropertyType.TYPE) {
+        case TYPE:
             return getType();
-        }  else if (property == GraphicObjectPropertyType.DATA) {
+        case DATA:
             return getIdentifier();
-        }  else if (property == GraphicObjectPropertyType.TAG) {
+        case TAG:
             return getTag();
-        }  else if (property == GraphicObjectPropertyType.CALLBACK) {
+        case CALLBACK:
             return getCallbackString();
-        }  else if (property == GraphicObjectPropertyType.CALLBACKTYPE) {
+        case CALLBACKTYPE:
             return getCallbackType();
-        }  else if (property == GraphicObjectPropertyType.UNKNOWNPROPERTY) {
+        case UNKNOWNPROPERTY:
             return null;
-        } else {
+        default:
             return null;
         }
     }
@@ -330,32 +336,50 @@ public abstract class GraphicObject implements Cloneable {
      * @return true if the property has been set, false otherwise
      */
     public UpdateStatus setProperty(Object property, Object value) {
-        if (property == GraphicObjectPropertyType.PARENT) {
+        if (!(property instanceof GraphicObjectPropertyType)) {
+            return UpdateStatus.Success;
+        }
+
+        GraphicObjectPropertyType p = (GraphicObjectPropertyType) property;
+        switch (p) {
+        case PARENT:
             setParent((String) value);
-        } else if (property == GraphicObjectPropertyType.CHILDREN) {
+            break;
+        case CHILDREN:
             setChildren((String[]) value);
-        } else if (property == GraphicObjectPropertyType.VALID) {
+            break;
+        case VALID:
             setValid((Boolean) value);
-        } else if (property == GraphicObjectPropertyType.HIDDEN) {
+            break;
+        case HIDDEN:
             setHidden((Boolean) value);
-        } else if (property == GraphicObjectPropertyType.VISIBLE) {
+            break;
+        case VISIBLE:
             setVisible((Boolean) value);
-        } else if (property == GraphicObjectPropertyType.USERDATA) {
+            break;
+        case USERDATA:
             setUserData((Integer[]) value);
-        } else if (property == GraphicObjectPropertyType.USERDATASIZE) {
+            break;
+        case USERDATASIZE:
             return UpdateStatus.Fail;
-        } else if (property == GraphicObjectPropertyType.SELECTEDCHILD) {
+        case SELECTEDCHILD:
             setSelectedChild((String) value);
-        } else if (property == GraphicObjectPropertyType.DATA) {
+            break;
+        case DATA:
             return UpdateStatus.Success;
-        } else if (property == GraphicObjectPropertyType.TAG) {
+        case TAG:
             setTag((String) value);
-        } else if (property == GraphicObjectPropertyType.CALLBACK) {
+            break;
+        case CALLBACK:
             setCallbackString((String) value);
-        } else if (property == GraphicObjectPropertyType.CALLBACKTYPE) {
+            break;
+        case CALLBACKTYPE:
             setCallbackType((Integer) value);
-        } else if (property == GraphicObjectPropertyType.UNKNOWNPROPERTY) {
+            break;
+        case UNKNOWNPROPERTY:
             return UpdateStatus.Fail;
+        default:
+            return UpdateStatus.Success;
         }
 
         return UpdateStatus.Success;
@@ -401,9 +425,7 @@ public abstract class GraphicObject implements Cloneable {
      * @param child the identifier of the added child.
      */
     public void addChild(String child) {
-        if (!children.contains(child)) {
-            children.add(0, child);
-        }
+       children.add(0, child);
     }
 
     /**