[skycastle-commits] SF.net SVN: skycastle: [452] trunk/skycastle/modules/ui/src/main/java/org/ skycastle/ui

  • From: zzorn@xxxxxxxxxxxxxxxxxxxxx
  • To: skycastle-commits@xxxxxxxxxxxxx
  • Date: Sat, 12 Apr 2008 18:07:40 -0700

Revision: 452
          http://skycastle.svn.sourceforge.net/skycastle/?rev=452&view=rev
Author:   zzorn
Date:     2008-04-12 18:07:40 -0700 (Sat, 12 Apr 2008)

Log Message:
-----------
UI Demo shows updates to UI reflected in game object listener.

Modified Paths:
--------------
    
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReference.java
    
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReferenceImpl.java
    trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/SwingClientUi.java
    
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/example/UiDemo.java

Modified: 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReference.java
===================================================================
--- 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReference.java
    2008-04-12 21:31:47 UTC (rev 451)
+++ 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReference.java
    2008-04-13 01:07:40 UTC (rev 452)
@@ -58,7 +58,7 @@
      *
      * @throws ParameterValidationException if the parameter did not validate 
against the metadata.
      */
-    void setProperty( GameObjectId caller, Object value )
+    void setProperty( GameObjectId caller, Serializable value )
             throws ParameterValidationException;
 
     /**

Modified: 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReferenceImpl.java
===================================================================
--- 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReferenceImpl.java
        2008-04-12 21:31:47 UTC (rev 451)
+++ 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/PropertyReferenceImpl.java
        2008-04-13 01:07:40 UTC (rev 452)
@@ -7,6 +7,7 @@
 import org.skycastle.util.parameters.ParameterMetadata;
 import org.skycastle.util.parameters.ParameterValidationException;
 
+import java.io.Serializable;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -87,10 +88,19 @@
         }
     }
 
-    public void setProperty( final GameObjectId caller, final Object value )
+    public void setProperty( final GameObjectId caller, final Serializable 
value )
             throws ParameterValidationException
     {
-        throw new UnsupportedOperationException( "This method has not yet been 
implemented." ); // IMPLEMENT
+        final GameObject gameObject = 
GameContext.getGameObjectContext().getGameObjectById( myGameObjectId, false );
+
+        if ( gameObject != null )
+        {
+            gameObject.setPropertyValue( myPropertyIdentifier, value );
+        }
+        else
+        {
+            throw new IllegalStateException( "The property reference is not 
bound to any GameObject" );
+        }
     }
 
     public <T> T getProperty( final GameObjectId caller, final Class<T> 
expectedType, final T defaultValue )
@@ -127,7 +137,7 @@
     public boolean isEditable()
     {
         // TODO: Find out edit rights of current user for this property...
-        return false;
+        return true;
 
         /*
         final ParameterMetadata propertyMetadata = getPropertyMetadata();

Modified: 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/SwingClientUi.java
===================================================================
--- 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/SwingClientUi.java    
    2008-04-12 21:31:47 UTC (rev 451)
+++ 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/SwingClientUi.java    
    2008-04-13 01:07:40 UTC (rev 452)
@@ -41,10 +41,7 @@
 
         myMainFrame.pack();
 
-        if ( myRootUi != null )
-        {
-            myRootPanel.add( myRootUi.getUi() );
-        }
+        addRootUi( myRootUi );
     }
 
     public void stop()
@@ -57,12 +54,22 @@
 
     public void setRootUi( final UiObject rootUi )
     {
+        removeRootUi();
+
+        addRootUi( rootUi );
+    }
+
+    private void removeRootUi()
+    {
         if ( myMainFrame != null &&
              myRootUi != null )
         {
             myRootPanel.remove( myRootUi.getUi() );
         }
+    }
 
+    private void addRootUi( final UiObject rootUi )
+    {
         myRootUi = rootUi;
 
         if ( myMainFrame != null &&
@@ -70,6 +77,11 @@
         {
             myRootPanel.add( myRootUi.getUi() );
         }
+
+        if ( myRootPanel != null )
+        {
+            myRootPanel.revalidate();
+        }
     }
 
 }

Modified: 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/example/UiDemo.java
===================================================================
--- 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/example/UiDemo.java   
    2008-04-12 21:31:47 UTC (rev 451)
+++ 
trunk/skycastle/modules/ui/src/main/java/org/skycastle/ui/example/UiDemo.java   
    2008-04-13 01:07:40 UTC (rev 452)
@@ -1,9 +1,9 @@
 package org.skycastle.ui.example;
 
-import org.skycastle.core.ClientContext;
-import org.skycastle.core.GameContext;
-import org.skycastle.core.GameObject;
-import org.skycastle.core.GameObjectContext;
+import org.skycastle.core.*;
+import org.skycastle.messaging.Message;
+import org.skycastle.messaging.MessageListener;
+import org.skycastle.messaging.updates.property.PropertyChangedMessage;
 import org.skycastle.ui.ClientUi;
 import org.skycastle.ui.SwingClientUi;
 import org.skycastle.ui.TextFieldUi;
@@ -33,12 +33,27 @@
         GameObject gameObject = context.createGameObject();
         try
         {
-            gameObject.addProperty( "hp", 10, "Hitpoints" );
+            gameObject.addProperty( "hp", "10", "Hitpoints" );
         }
         catch ( ParameterValidationException e )
         {
             e.printStackTrace();  //To change body of catch statement use File 
| Settings | File Templates.
         }
+
+        gameObject.addDirectUpdateListener( new AllMessagesFilter(), new 
MessageListener()
+        {
+            public void onMessage( final Message message )
+            {
+                if ( message instanceof PropertyChangedMessage )
+                {
+                    PropertyChangedMessage propertyChangedMessage = 
(PropertyChangedMessage) message;
+                    System.out.println( 
"propertyChangedMessage.getMemberIdentifier() = " + 
propertyChangedMessage.getMemberIdentifier() );
+                    System.out.println( "propertyChangedMessage.getValue() = " 
+ propertyChangedMessage.getValue() );
+                }
+            }
+        } );
+
+
         textFieldUi.getPropertyReference().setReference( gameObject.getId(), 
"hp" );
         swingClientUi.setRootUi( textFieldUi );
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

Other related posts:

  • » [skycastle-commits] SF.net SVN: skycastle: [452] trunk/skycastle/modules/ui/src/main/java/org/ skycastle/ui