package gdxstudio.panel;
import gdxstudio.SceneEditor;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import scene2d.EventType;
import scene2d.ImageJson;
import scene2d.Scene;
public class EventPanel extends BaseTable {
private static final long serialVersionUID = 1L;
JComboBox<String> eventComboBox = createComboBox();
JComboBox<String> onEventComboBox = createComboBox();
JComboBox<String> sceneComboBox = createComboBox();
public EventPanel(){
super("Events");
editors.add(new DefaultCellEditor(eventComboBox));
editors.add(new DefaultCellEditor(onEventComboBox));
editors.add(new DefaultCellEditor(sceneComboBox));
for(EventType event: EventType.values())
eventComboBox.addItem(event.toString());
for(Scene.OnEventType onEvent: Scene.OnEventType.values())
onEventComboBox.addItem(onEvent.toString());
for(String scene: Scene.scenesMap.keys())
sceneComboBox.addItem(scene);
}
@Override
public void clear(String... names){
super.clear("Event", "onEvent", "Scene");
}
@Override
public void update(String... propertyNames){
if(SceneEditor.selectedActor instanceof ImageJson){
ImageJson img = (ImageJson) SceneEditor.selectedActor;
super.update("Event", img.evtType.toString(), "onEvent", ""+img.onEvtType.toString(),
"Scene", ""+img.eventScene);
sceneComboBox.removeAllItems();
for(String scene: Scene.scenesMap.keys())
sceneComboBox.addItem(scene);
}
else{
clear();
}
}
@Override
public void setProperty(String key, String value){
if(key.isEmpty() || value.isEmpty())
return ;
if(SceneEditor.selectedActor instanceof ImageJson){
ImageJson img = (ImageJson)SceneEditor.selectedActor;
switch(key){
case "Event":
img.evtType = EventType.valueOf(value);
if(img.evtType == EventType.None){
onEventComboBox.setEnabled(false);
}
else if(img.evtType == EventType.SceneCreated){
onEventComboBox.setSelectedItem(Scene.OnEventType.DoEffect.toString());
onEventComboBox.setEnabled(false);
}
else{
onEventComboBox.setEnabled(true);
}
break;
case "onEvent":
img.onEvtType = Scene.OnEventType.valueOf(value);
if(img.onEvtType == Scene.OnEventType.DoEffect){
sceneComboBox.setEnabled(false);
}
else{
sceneComboBox.setEnabled(true);
}
break;
case "Scene": img.eventScene = value;break;
}
Scene.isDirty = true;
}
}
}