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.