/* * (c) 2005-2009 Carlos G�mez Rodr�guez, todos los derechos reservados / all rights reserved. * Licencia en license/bsd.txt / License in license/bsd.txt */ package org.f2o.absurdum.puck.gui.dialog; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.KeyStroke; import org.f2o.absurdum.puck.gui.PuckFrame; import org.f2o.absurdum.puck.gui.config.PuckConfiguration; import org.f2o.absurdum.puck.gui.graph.AbstractEntityNode; import org.f2o.absurdum.puck.gui.graph.CharacterNode; import org.f2o.absurdum.puck.gui.graph.ItemNode; import org.f2o.absurdum.puck.gui.graph.RoomNode; import org.f2o.absurdum.puck.gui.graph.SpellNode; import org.f2o.absurdum.puck.i18n.UIMessages; import eu.irreality.age.windowing.DialogUtils; public class ShowHideDialog extends JDialog { private JCheckBox cbRoomNames = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.names.room")); private JCheckBox cbItemNames = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.names.item")); private JCheckBox cbCharacterNames = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.names.char")); private JCheckBox cbSpellNames = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.names.spell")); private JCheckBox cbAbstractEntityNames = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.names.abs")); private JCheckBox cbArrowNames = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.names.rel")); private JCheckBox cbRoomNodes = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.nodes.room")); private JCheckBox cbItemNodes = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.nodes.item")); private JCheckBox cbCharacterNodes = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.nodes.char")); private JCheckBox cbSpellNodes = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.nodes.spell")); private JCheckBox cbAbstractEntityNodes = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.nodes.abs")); private JCheckBox cbArrows = new JCheckBox(UIMessages.getInstance().getMessage("cb.showhide.rel")); private JButton bClose = new JButton(UIMessages.getInstance().getMessage("button.clo")); public ShowHideDialog ( final PuckFrame parent , boolean modal ) { super(parent,modal); this.setTitle(UIMessages.getInstance().getMessage("dialog.showhide")); this.getContentPane().setLayout( new BorderLayout() ); JPanel mainPanel = new JPanel(); JPanel buttonsPanel = new JPanel(); cbRoomNames.setSelected(PuckConfiguration.getInstance().getProperty("showRoomNames").equals("true")); cbItemNames.setSelected(PuckConfiguration.getInstance().getProperty("showItemNames").equals("true")); cbCharacterNames.setSelected(PuckConfiguration.getInstance().getProperty("showCharacterNames").equals("true")); cbSpellNames.setSelected(PuckConfiguration.getInstance().getProperty("showSpellNames").equals("true")); cbAbstractEntityNames.setSelected(PuckConfiguration.getInstance().getProperty("showAbstractEntityNames").equals("true")); cbArrowNames.setSelected(PuckConfiguration.getInstance().getProperty("showArrowNames").equals("true")); cbRoomNodes.setSelected(PuckConfiguration.getInstance().getProperty("showRoomNodes").equals("true")); cbItemNodes.setSelected(PuckConfiguration.getInstance().getProperty("showItemNodes").equals("true")); cbCharacterNodes.setSelected(PuckConfiguration.getInstance().getProperty("showCharacterNodes").equals("true")); cbSpellNodes.setSelected(PuckConfiguration.getInstance().getProperty("showSpellNodes").equals("true")); cbAbstractEntityNodes.setSelected(PuckConfiguration.getInstance().getProperty("showAbstractEntityNodes").equals("true")); cbArrows.setSelected(PuckConfiguration.getInstance().getProperty("showArrows").equals("true")); mainPanel.setLayout( new GridLayout(6,2) ); mainPanel.add(cbRoomNodes); mainPanel.add(cbRoomNames); mainPanel.add(cbItemNodes); mainPanel.add(cbItemNames); mainPanel.add(cbCharacterNodes); mainPanel.add(cbCharacterNames); mainPanel.add(cbSpellNodes); mainPanel.add(cbSpellNames); mainPanel.add(cbAbstractEntityNodes); mainPanel.add(cbAbstractEntityNames); mainPanel.add(cbArrows); mainPanel.add(cbArrowNames); this.getContentPane().add(mainPanel,BorderLayout.CENTER); linkToConfigProperty(parent,cbRoomNodes,"showRoomNodes"); linkToConfigProperty(parent,cbRoomNames,"showRoomNames"); linkToConfigProperty(parent,cbItemNodes,"showItemNodes"); linkToConfigProperty(parent,cbItemNames,"showItemNames"); linkToConfigProperty(parent,cbCharacterNodes,"showCharacterNodes"); linkToConfigProperty(parent,cbCharacterNames,"showCharacterNames"); linkToConfigProperty(parent,cbSpellNodes,"showSpellNodes"); linkToConfigProperty(parent,cbSpellNames,"showSpellNames"); linkToConfigProperty(parent,cbAbstractEntityNodes,"showAbstractEntityNodes"); linkToConfigProperty(parent,cbAbstractEntityNames,"showAbstractEntityNames"); linkToConfigProperty(parent,cbArrows,"showArrows"); linkToConfigProperty(parent,cbArrowNames,"showArrowNames"); bClose.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { ShowHideDialog.this.dispose(); } } ); DialogUtils.registerEscapeAction(this); DialogUtils.registerCloseAction(this,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)); this.getContentPane().add(buttonsPanel,BorderLayout.SOUTH); pack(); setLocationRelativeTo(null); } private void linkToConfigProperty(final PuckFrame frame , final JCheckBox cb , final String property) { cb.addItemListener ( new ItemListener() { public void itemStateChanged(ItemEvent arg0) { String boolString = cb.isSelected() ? "true" : "false"; PuckConfiguration.getInstance().setProperty(property,boolString); frame.repaint(); } } ); } }