package com.clearlyspam23.GLE.basic.layers.tile.gui; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import com.clearlyspam23.GLE.basic.layers.tile.TilesetGroupNode; import com.clearlyspam23.GLE.basic.layers.tile.TilesetHandle; import com.clearlyspam23.GLE.basic.layers.tile.TilesetManager; import com.clearlyspam23.GLE.basic.layers.tile.TilesetTileNode; import com.clearlyspam23.GLE.basic.layers.tile.TilesetTreeNode; import com.clearlyspam23.GLE.basic.layers.tile.gui.tileset.TilesetLoadPanel; import com.clearlyspam23.GLE.basic.layers.tile.resources.BasicTilesetHandle; public class TilesetLoadDialog extends JDialog implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; private TilesetLoadPanel tilesetLoadPanel; private TilesetManager currentManager; public static void recursivePrint(TilesetGroupNode node, int indent){ for(TilesetTreeNode n : node.getChildren()){ for(int i = 0; i < indent; i++) System.out.print('\t'); System.out.println(n.getType() + " : " + n.getName()); if(n.getType()==TilesetTreeNode.Type.GROUP) recursivePrint(n.getAsGroup(), indent+1); } } /** * Launch the application. */ public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e1) { //honestly, if this doesnt work, whatever we'll use default. should fail silently. } try { // ResourceManager.get().registerResourceType(Tileset.class); // ResourceManager.get().registerResourceType(TilesetHandle.class); TilesetLoadDialog dialog = new TilesetLoadDialog(); TilesetManager manager = new TilesetManager(); TilesetGroupNode root = new TilesetGroupNode("Tilesets"); TilesetHandle h = new BasicTilesetHandle("Pipes", "images/Pipes.png", 64, 64); root.addNode(new TilesetTileNode(h)); TilesetGroupNode group = new TilesetGroupNode("group"); h = new BasicTilesetHandle("Boxes", "images/testboxes.png", 64, 64); group.addNode(new TilesetTileNode(h)); root.addNode(group); manager.setRoot(root); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.showDialog(manager); recursivePrint(manager.getRoot(), 0); } catch (Exception e) { e.printStackTrace(); } } /** * Create the dialog. */ public TilesetLoadDialog() { setModal(true); setBounds(100, 100, 609, 563); getContentPane().setLayout(new BorderLayout()); tilesetLoadPanel = new TilesetLoadPanel(); getContentPane().add(tilesetLoadPanel, BorderLayout.CENTER); { JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { JButton okButton = new JButton("OK"); okButton.setActionCommand("OK"); okButton.addActionListener(this); buttonPane.add(okButton); } { JButton cancelButton = new JButton("Cancel"); cancelButton.setActionCommand("Cancel"); cancelButton.addActionListener(this); buttonPane.add(cancelButton); } } } public void showDialog(TilesetManager manager){ currentManager = manager; tilesetLoadPanel.setToTileset(manager.getRoot(), manager.getLastId()); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if("OK".equals(e.getActionCommand())){ if(!tilesetLoadPanel.finish()){ return; } currentManager.setRoot(tilesetLoadPanel.getTilesets()); } TilesetGroupNode.recursivePrint(currentManager.getRoot()); setVisible(false); } }