view src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java @ 383:878d397904da multicast

draw same Scene
author sugi
date Tue, 10 Jun 2014 19:36:46 +0900
parents ca093d55a886
children 1cbac5818dca
line wrap: on
line source

package alice.test.topology.aquarium.fx;

import javafx.application.Platform;
import javafx.scene.Group;
import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;

public class SetTranslate extends CodeSegment {
	
	private Receiver info  = ids.create(CommandType.TAKE); // object instance
	private Receiver info1 = ids.create(CommandType.TAKE); // fish position information
	private boolean executed = false;
	public SetTranslate(String key) {
		info.setKey(key);
		info1.setKey(key+"Position");
	}

	@Override
	public void run() {
		if (!executed) {
			executed = true;
			new SendDataOthers(info1, info1.key);
			// javafx's Scene can be accessed only FX application thread.
			Platform.runLater(this);
		} else {
			Group fish   = info.asClass(Group.class);
			FishInfo fp = info1.asClass(FishInfo.class);
        	
        	fish.setTranslateX(fish.getTranslateX()+fp.getX());
        	fish.setTranslateY(fish.getTranslateY()+fp.getY());
        	fish.setTranslateZ(fish.getTranslateZ()+fp.getZ());
        	ods.flip(info);
        	executed = false;
    		new SetTranslate(info.key);
		}		
	}

}