package gdxstudio.panel; import gdxstudio.SceneEditor; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import scene2d.Effect; import scene2d.EffectType; import scene2d.ImageJson; import scene2d.InterpolationType; import scene2d.Scene; import web.laf.lite.utils.UIUtils; public class EffectPanel extends BaseTable { private static final long serialVersionUID = 1L; static String[] durations = { "0.0", "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "3.0", "3.1", "3.2", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0", "4.1", "4.2", "4.3", "4.4", "4.5", "4.6", "4.7", "4.8", "4.9", "5.0" }; JComboBox<String> effectComboBox = createComboBox(); JComboBox<String> durationComboBox = createComboBox(durations); JComboBox<String> interpolationComboBox = createComboBox(); public EffectPanel(){ super("Effects"); UIUtils.setUndecorated(this, true); editors.add(new DefaultCellEditor(effectComboBox)); editors.add(createNumberField()); editors.add(new DefaultCellEditor(durationComboBox)); editors.add(new DefaultCellEditor(interpolationComboBox)); for(EffectType effect: EffectType.values()) effectComboBox.addItem(effect.toString()); for(InterpolationType interpolation: InterpolationType.values()) interpolationComboBox.addItem(interpolation.toString()); } @Override public void clear(String... names){ super.clear("Effect", "Value", "Duration", "Interpolation", "addEffectDelay", "addActorDelay"); } @Override public void update(String... propertyNames){ if(SceneEditor.selectedActor instanceof ImageJson){ ImageJson img = (ImageJson) SceneEditor.selectedActor; super.update("Effect", img.effectType.toString(), "Value", ""+img.effectValue, "Duration", ""+img.effectDuration,"Interpolation", img.interpolationType.toString(), "addEffectDelay", ""+img.addEffectDelay, "addActorDelay", ""+img.addActorDelay); } 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; img.clearActions(); switch(key){ case "Effect": img.effectType = EffectType.valueOf(value);break; case "Value": img.effectValue = Float.parseFloat(value);break; case "Duration": img.effectDuration = Float.parseFloat(value);break; case "Interpolation":img.interpolationType = InterpolationType.valueOf(value);break; } Effect.createEffect(img); Scene.isDirty = true; } } }