gdx-studio

#libgdx#java#desktop

git clone https://git.pyrossh.dev/gdx-studio

An IDE for creating Games using libgdx and Java supported on all platforms Android, iOS, Desktop


src/gdxstudio/panel/WidgetPanel.java
package gdxstudio.panel;
import java.awt.Dimension;
import java.awt.datatransfer.StringSelection;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragGestureListener;
import java.awt.dnd.DragSource;
import java.awt.dnd.DragSourceDragEvent;
import java.awt.dnd.DragSourceDropEvent;
import java.awt.dnd.DragSourceEvent;
import java.awt.dnd.DragSourceListener;
import java.awt.event.ActionEvent;

import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.event.ListSelectionEvent;

import web.laf.lite.layout.HorizontalFlowLayout;
import web.laf.lite.utils.UIUtils;

public class WidgetPanel extends BaseList implements DragSourceListener, DragGestureListener {
	private static final long serialVersionUID = 1L;
	
	DragSource dragSource = new DragSource();
	String[] btns = new String[]{
			"New Widget", "new","Delete", "trash"
	};
	private JPanel hbox = new JPanel(new HorizontalFlowLayout());
	StyleList sl = new StyleList();
	StyleTable st = new StyleTable();
	
	
	public WidgetPanel(){
		super("Widgets", "Label","Image", "Sprite", "Button","TextButton", "CheckBox", 
				"List", "SelectBox", "Slider", "TextField",
				"Table", "Dialog", "Touchpad", "Model");
		list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
		dragSource.addDragSourceListener(this);
	    dragSource.createDefaultDragGestureRecognizer(list, DnDConstants.ACTION_MOVE, this);
	    hbox.add(list);
	    hbox.add(sl);
	    hbox.add(st);
	    //this.remove(scrollPane);
	    UIUtils.setDrawBorder(scrollPane, true);
	    scrollPane.setPreferredSize(new Dimension(200, 150));
	    scrollPane.setViewportView(hbox);
	    add(scrollPane);
	}

	@Override
	public void dragDropEnd(DragSourceDropEvent arg0) {
	}


	@Override
	public void dragEnter(DragSourceDragEvent arg0) {
	}


	@Override
	public void dragExit(DragSourceEvent arg0) {
	}


	@Override
	public void dragOver(DragSourceDragEvent arg0) {
	}


	@Override
	public void dropActionChanged(DragSourceDragEvent arg0) {
	}

	@Override
	public void dragGestureRecognized(DragGestureEvent event) {
	    StringSelection text = new StringSelection(list.getSelectedValue());
	    dragSource.startDrag(event, DragSource.DefaultMoveDrop, text, this);
	}

	@Override
	public void valueChanged(ListSelectionEvent arg0) {
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
	}
}

class StyleList extends BaseList {
	private static final long serialVersionUID = 1L;

	public StyleList(){
		super("Styles", "LabelStyle", "ButtonStyle");
	}

	@Override
	public void valueChanged(ListSelectionEvent arg0) {
	}
}

class StyleTable extends BaseTable {
	private static final long serialVersionUID = 1L;

	public StyleTable(){
		super("Properties");
	}
	
	@Override
	public void clear(String... items){
		super.clear("StyleName", "", "", "", "");
	}
}