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/TablePanel.java
package gdxstudio.panel;
import gdxstudio.GdxStudio;
import gdxstudio.Style;

import java.awt.Component;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpringLayout;

import web.laf.lite.layout.VerticalFlowLayout;
import web.laf.lite.utils.SpringUtils;
import web.laf.lite.utils.UIUtils;


public class TablePanel extends JPanel implements ActionListener {
	private static final long serialVersionUID = 1L;
	//protected final JScrollPane scrollPane;
	public final JButton headerButton;
	private static HashMap<String, JComponent> values = new HashMap<String, JComponent>();
	
	public TablePanel(String title){
		super(new VerticalFlowLayout());
		UIUtils.setUndecorated(this, false);
		headerButton = new Style.TitleButton(title, this);
		if(!title.isEmpty()){
			add(headerButton);
		}
		//scrollPane = new JScrollPane(this);
		//scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
		//scrollPane.setPreferredSize(new Dimension(200, 500));
		//UIUtils.setDrawBorder(scrollPane, false);
		//add(scrollPane);
		createProperty("Name", createTextField());
		createProperty("  X  ", createSpinner() , "  Y  ", createSpinner());
		//createProperty("OX ", createSpinner() ,  "OY ", createSpinner());
		createProperty("Width", createSpinner(), "Height", createSpinner());
		//createProperty("Height", createSpinner());
		GdxStudio.log("COMPK"+getProperty("Y"));
		setProperty("X", 500);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
	}
	
	public void createProperty(String name, JComponent comp){
		JPanel hoz = new JPanel(new SpringLayout());
   	 	UIUtils.setUndecorated(hoz, false);
   	 	UIUtils.setMargin(hoz, new Insets(0, 0, 0, 0));
   	 	UIUtils.setShadeWidth(hoz, 0);
   	 	UIUtils.setRound(hoz, 0);
   	 	UIUtils.setDrawSides(hoz, false, false, true, false);
   	 	HeaderLabel x = new HeaderLabel(name);
   	 	UIUtils.setMargin(x, new Insets(0, 0, 0, 0));
   	 	comp.setBorder(BorderFactory.createEmptyBorder());
   	 	hoz.add(x);
   	 	hoz.add(comp);
   	 	values.put(name, comp);
   	 	SpringUtils.makeGrid(hoz, 1, 2, 0, 0, 0, 0);
   	 	add(hoz);
	}

	public void createProperty(String name, JComponent comp, String name2, JComponent comp2){
		JPanel hoz = new JPanel(new SpringLayout());
		UIUtils.setUndecorated(hoz, false);
   	 	UIUtils.setMargin(hoz, new Insets(0, 0, 0, 0));
   	 	UIUtils.setShadeWidth(hoz, 0);
   	 	UIUtils.setRound(hoz, 0);
   	 	UIUtils.setDrawSides(hoz, false, false, true, false);
   	 	HeaderLabel x = new HeaderLabel(name);
   	 	UIUtils.setMargin(x, new Insets(0, 0, 0, 0));
   	 	HeaderLabel y = new HeaderLabel(name2);
   	 	hoz.add(x);
   	 	hoz.add(comp);
   	 	hoz.add(y);
	 	hoz.add(comp2);
		values.put(name, comp);
		values.put(name2, comp2);
	 	SpringUtils.makeGrid(hoz, 1, 4, 0, 0, 0, 0);
   	 	add(hoz);
	}
	
	public void createProperty(String name, JComponent comp, String name2, JComponent comp2, 
			String name3, JComponent comp3){
		JPanel hoz = new JPanel(new SpringLayout());
		UIUtils.setUndecorated(hoz, false);
   	 	UIUtils.setMargin(hoz, new Insets(0, 0, 0, 0));
   	 	UIUtils.setShadeWidth(hoz, 0);
   	 	UIUtils.setRound(hoz, 0);
   	 	UIUtils.setDrawSides(hoz, false, false, true, false);
   	 	
   	 	HeaderLabel x = new HeaderLabel(name);UIUtils.setMargin(x, new Insets(0, 0, 0, 0));
   	 	HeaderLabel y = new HeaderLabel(name2);UIUtils.setMargin(y, new Insets(0, 0, 0, 0));
	 	HeaderLabel z = new HeaderLabel(name3);UIUtils.setMargin(z, new Insets(0, 0, 0, 0));
	 	
   	 	hoz.add(x);
   	 	hoz.add(comp);
   	 	hoz.add(y);
	 	hoz.add(comp2);
	 	hoz.add(z);
	 	hoz.add(comp3);
		values.put(name, comp);
		values.put(name2, comp2);
		values.put(name3, comp3);
	 	SpringUtils.makeCompactGrid(hoz, 1, 6, 0, 0, 0, 0);
   	 	add(hoz);
	}
	
	public JSpinner createSpinner(){
		JSpinner spinner = new JSpinner();
		UIUtils.setDrawBorder(spinner, false);
		UIUtils.setShadeWidth(spinner, 0);
		UIUtils.setRound(spinner, 0);
		UIUtils.setDrawFocus(spinner, false);
		return spinner;
	}
	
	public JTextField createTextField(){
		JTextField tf = new JTextField();
		UIUtils.setShadeWidth(tf, 0);
		UIUtils.setRound(tf, 0);
		UIUtils.setDrawFocus(tf, false);
		return tf;
	}
	
	public String getProperty(String name){
		Component c = values.get(name);
		if(c instanceof JSpinner)
			return ((JSpinner)c).getValue().toString();
		if(c instanceof JTextField){
			return ((JTextField)c).getText();
		}
		return "";
	}
	
	public void setProperty(String name, String value){
		Component c = values.get(name);
		if(c instanceof JTextField)
			((JTextField)c).setText(value);
	}
	
	public void setProperty(String name, int value){
		Component c = values.get(name);
		if(c instanceof JSpinner)
			((JSpinner)c).setValue(value);
	}
}