import gdxstudio.Content;
import gdxstudio.SceneEditor;
import gdxstudio.StatusBar;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.event.ListSelectionEvent;
import web.laf.lite.widget.CenterPanel;
import com.badlogic.gdx.scenes.scene2d.Actor;
public class ActorPanel extends BaseList {
private static final long serialVersionUID = 1L;
String[] btns = new String[]{
"Cut", "cut", "Copy", "copy", "Paste", "paste", "Delete", "trash"
private JComboBox<String> groupCombo = BaseTable.createComboBox();
public static Actor copiedActor = null;
public static Actor cutActor = null;
JPanel tools = Style.createButtonToolBar(this, btns);
groupCombo.addItem("Root");
groupCombo.setPreferredSize(new Dimension(90, 17));
tools.add(new CenterPanel(groupCombo, false, true));
if(Frame.scenePanel.selectedValueExists())
setHeaderText(Frame.scenePanel.getSelectedValue());
paste = tools.getComponent(2);
public void addActor(String actorName){
listModel2.addElement(actorName);
public void renameActor(String actorName, String newName){
listModel2.removeElement(actorName);
listModel2.addElement(newName);
public void addGroup(String groupName){
groupCombo.addItem(groupName);
public void removeGroup(String groupName){
for(int i=0;i<groupCombo.getItemCount();i++)
if(groupCombo.getItemAt(i).equals(groupCombo.getSelectedItem())){
groupCombo.removeItem(groupName);
listModel2.model.clear();
StatusBar.updateSelected("None");
public boolean contains(String name){
return listModel2.contains(name);
public int indexOf(String element){
return listModel2.indexOf(element);
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting() == false) {
SceneEditor.doClick(Scene.getCurrentScene().findActor(list.getSelectedValue()));
public void actionPerformed(ActionEvent e) {
switch(((JButton)e.getSource()).getToolTipText()){
if(list.getSelectedIndex() != -1){
cutActor = SceneEditor.selectedActor;
listModel2.removeElement(SceneEditor.selectedActor.getName());
Scene.getCurrentScene().removeActor(SceneEditor.selectedActor);
if(list.getSelectedIndex() != -1){
String line = Scene.json.toJson(SceneEditor.selectedActor);
copiedActor = Scene.json.fromJson(Actor.class, line);
Content.studioPanel.setName(cutActor);
copiedActor = Scene.json.fromJson(Actor.class, Scene.json.toJson(SceneEditor.selectedActor));
Content.studioPanel.setName(copiedActor);
if(list.getSelectedIndex() != -1){
Scene.getCurrentScene().removeActor(SceneEditor.selectedActor);
StatusBar.updateSelected("None");
if(contains(SceneEditor.selectedActor.getName()))
listModel2.removeElement(SceneEditor.selectedActor.getName());
public void setHeaderText(String text){