// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea
// Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com
// Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology
// Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/
package graphtea.ui.components.prefeditor;
import graphtea.ui.components.gpropertyeditor.GPropertyEditor;
import graphtea.ui.components.utils.GFrameLocationProvider;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
/**
* @author Rouzbeh Ebrahimi
*/
public class GTabbedAttributeFrame extends JDialog {
/**
*
*/
private static final long serialVersionUID = 2001771646679881523L;
// private NotifiableAttributeSet atr;
public GTabbedAttributePane tabbedPane;
/**
* Creates new form GAttrFrame
*/
public GTabbedAttributeFrame(java.awt.Frame parent, GTabbedAttributePane tabbedPane, boolean modal) {
super(parent, modal);
this.tabbedPane = tabbedPane;
tabbedPane.setVisible(true);
initComponents();
}
/**
* @return the return status of this dialog - true-> the ok presses, false-> cancelled by user
*/
public boolean getReturnStatus() {
return status;
}
GPropertyEditor table;
private void initComponents() {
setAlwaysOnTop(true);
add(tabbedPane);
JPanel buttonPanel = new JPanel();
JButton cancelButton = new JButton("cancel");
// table = new gpropertyeditor();
// table.connect(tabbedPane);
JButton okButton = new JButton("Ok");
setDefaultCloseOperation(HIDE_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog();
}
});
okButton.addActionListener(evt -> finished(true));
cancelButton.addActionListener(evt -> finished(false));
okButton.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
finished(true);
}
}
});
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
buttonPanel.add(okButton);
buttonPanel.add(cancelButton);
// buttonPanel.add(applyButton);
add(buttonPanel, java.awt.BorderLayout.SOUTH);
// add(table,java.awt.BorderLayout.CENTER);
// applyButton.setSelected(true);
setSize(GFrameLocationProvider.getPopUpSize());
setLocation(GFrameLocationProvider.getPopUpLocation());
validate();
okButton.setSelected(true);
pack();
// applyButton.grabFocus();
}
private boolean status = false;
private boolean finished = false;
private void closeDialog() {
finished = true;
}
private void finished(boolean status) {
this.status = status;
closeDialog();
dispose();
}
public static GTabbedAttributeFrame showEditDialog(GTabbedAttributePane tabs) {
return showEditDialog(tabs, true);
}
/**
* Shows a Property editor to edit the attributes in the input.
* the modal is like the modal in JDialog
*/
public static GTabbedAttributeFrame showEditDialog(GTabbedAttributePane tabs, boolean modal) {
GTabbedAttributeFrame gAttrFrame = new GTabbedAttributeFrame(new JFrame(), tabs, modal);
gAttrFrame.setVisible(true);
return gAttrFrame;
}
/**
* return the GProertyEditor which is the main editor of notifiableAttributeSet
*/
public GPropertyEditor getPropertyEditor() {
return table;
}
}