/*
* (c) 2005-2010 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.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
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.Node;
import org.f2o.absurdum.puck.gui.panels.WorldPanel;
import org.f2o.absurdum.puck.i18n.UIMessages;
import eu.irreality.age.windowing.DialogUtils;
public class FindEntityDialog extends JDialog
{
private JButton findButton = new JButton(UIMessages.getInstance().getMessage("button.find"));
private JButton closeButton = new JButton(UIMessages.getInstance().getMessage("button.clo"));
private JTextField nameTextField = new JTextField(20);
private JLabel resultLabel = new JLabel();
public FindEntityDialog ( final PuckFrame parent , boolean modal )
{
super(parent,modal);
this.setTitle(UIMessages.getInstance().getMessage("dialog.find.entity"));
this.getContentPane().setLayout(new BorderLayout());
JPanel mainPanel = new JPanel(new FlowLayout());
JPanel buttonsPanel = new JPanel();
buttonsPanel.setLayout(new BoxLayout(buttonsPanel,BoxLayout.LINE_AXIS));
mainPanel.add(new JLabel(UIMessages.getInstance().getMessage("label.find.entity")));
mainPanel.add(nameTextField);
getContentPane().add(mainPanel,BorderLayout.CENTER);
buttonsPanel.add(resultLabel);
buttonsPanel.add(Box.createHorizontalGlue());
buttonsPanel.add(findButton);
buttonsPanel.add(closeButton);
getContentPane().add(buttonsPanel,BorderLayout.SOUTH);
closeButton.addActionListener ( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
dispose();
}
} );
DialogUtils.registerEscapeAction(this);
findButton.addActionListener ( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
WorldPanel wp = (WorldPanel) parent.getGraphEditingPanel().getWorldNode().getAssociatedPanel();
if ( nameTextField.getText() != null )
{
Node n = wp.nameToNode(nameTextField.getText());
if ( n == null )
resultLabel.setText(UIMessages.getInstance().getMessage("label.entity.notfound"));
else
{
resultLabel.setText(UIMessages.getInstance().getMessage("label.entity.found"));
/*
parent.getGraphEditingPanel().resetSelections();
parent.getGraphEditingPanel().selectNode(n);
parent.getGraphEditingPanel().getPropertiesPanel().show(n);
parent.getGraphEditingPanel().centerViewOn(n);
parent.getGraphEditingPanel().repaint();
*/
parent.getGraphEditingPanel().focusOnNode(n,true);
}
}
}
} );
this.getRootPane().setDefaultButton(findButton);
pack();
setLocationRelativeTo(null);
}
public void setVisible ( boolean visible )
{
super.setVisible(visible);
if ( visible == true ) this.getRootPane().setDefaultButton(findButton);
}
}