Sketcher2 source code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.3 KiB

package com.jotuntech.sketcher.server.command;
import java.nio.ByteBuffer;
import com.jotuntech.sketcher.common.Canvas;
import com.jotuntech.sketcher.common.Layer;
import com.jotuntech.sketcher.common.User;
import com.jotuntech.sketcher.server.Command;
import com.jotuntech.sketcher.server.Connection;
import com.jotuntech.sketcher.server.Server;
public class SetLayerCommand implements Command {
Integer layerKey;
public SetLayerCommand() {
}
public SetLayerCommand(Integer layerKey) {
this.layerKey = layerKey;
}
public int perform(Server server, Connection connection) {
return perform(server.getCanvas(), connection.getUser());
}
private int perform(Canvas canvas, User user) {
if(user == null) {
return Connection.SEND_NONE;
}
if(user.isViewer()) {
return Connection.SEND_NONE;
}
if(canvas == null) {
return Connection.SEND_NONE;
}
Layer layer = canvas.getLayerMap().get(layerKey);
if(layer == null) {
return Connection.SEND_NONE;
}
if(user.getLayer() == layer) {
return Connection.SEND_NONE;
}
user.setLayer(layer);
return Connection.SEND_OTHERS;
}
public void decode(ByteBuffer in) {
layerKey = in.getInt();
}
public void encode(ByteBuffer out) {
out.putInt(layerKey);
}
}