mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-19 01:44:44 -04:00
added ok button to ElementOrderer
This commit is contained in:
parent
87eb1728fc
commit
68fdfbc683
@ -344,7 +344,7 @@ public class Main extends JFrame implements ClosingWindowListener.ConfirmSave, E
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ElementOrder o = new ElementOrder(circuitComponent.getCircuit(), "In");
|
||||
new ElementOrderer<>(Main.this, Lang.get("menu_orderInputs"), o).setVisible(true);
|
||||
new ElementOrderer<>(Main.this, Lang.get("menu_orderInputs"), o).showDialog();
|
||||
}
|
||||
}.setToolTip(Lang.get("menu_orderInputs_tt"));
|
||||
|
||||
@ -352,7 +352,7 @@ public class Main extends JFrame implements ClosingWindowListener.ConfirmSave, E
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ElementOrder o = new ElementOrder(circuitComponent.getCircuit(), "Out");
|
||||
new ElementOrderer<>(Main.this, Lang.get("menu_orderOutputs"), o).setVisible(true);
|
||||
new ElementOrderer<>(Main.this, Lang.get("menu_orderOutputs"), o).showDialog();
|
||||
}
|
||||
}.setToolTip(Lang.get("menu_orderOutputs_tt"));
|
||||
|
||||
@ -513,8 +513,11 @@ public class Main extends JFrame implements ClosingWindowListener.ConfirmSave, E
|
||||
names.add(s.getName());
|
||||
new OrderMerger<String, String>(circuitComponent.getCircuit().getMeasurementOrdering()).order(names);
|
||||
ElementOrderer.ListOrder<String> o = new ElementOrderer.ListOrder<>(names);
|
||||
new ElementOrderer<>(Main.this, Lang.get("menu_orderMeasurements"), o).setVisible(true);
|
||||
circuitComponent.getCircuit().setMeasurementOrdering(names);
|
||||
if (new ElementOrderer<>(Main.this, Lang.get("menu_orderMeasurements"), o)
|
||||
.addOkButton()
|
||||
.showDialog()) {
|
||||
circuitComponent.getCircuit().setMeasurementOrdering(names);
|
||||
}
|
||||
} catch (Exception e1) {
|
||||
showErrorAndStopModel(Lang.get("msg_errorCreatingModel"), e1);
|
||||
}
|
||||
|
@ -19,6 +19,13 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class ElementOrderer<T> extends JDialog {
|
||||
|
||||
private final JPanel buttons;
|
||||
private final JList<T> list;
|
||||
private final MyListModel<T> listModel;
|
||||
private final OrderInterface<T> data;
|
||||
|
||||
private boolean okPressed = true;
|
||||
|
||||
/**
|
||||
* Creates a new instance
|
||||
*
|
||||
@ -27,27 +34,16 @@ public class ElementOrderer<T> extends JDialog {
|
||||
* @param data the data to order
|
||||
*/
|
||||
public ElementOrderer(Frame owner, String title, OrderInterface<T> data) {
|
||||
this(owner, title, data, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new instance
|
||||
*
|
||||
* @param owner the owner of this dialog
|
||||
* @param title the dialogs title
|
||||
* @param data the data to order
|
||||
* @param deleteAllowed its allowed to delete items
|
||||
*/
|
||||
public ElementOrderer(Frame owner, String title, OrderInterface<T> data, boolean deleteAllowed) {
|
||||
super(owner, title, true);
|
||||
this.data = data;
|
||||
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
||||
|
||||
MyListModel<T> listModel = new MyListModel<T>(data);
|
||||
JList list = new JList<T>(listModel);
|
||||
listModel = new MyListModel<T>(data);
|
||||
list = new JList<T>(listModel);
|
||||
list.setPreferredSize(new Dimension(100, 150));
|
||||
getContentPane().add(new JScrollPane(list));
|
||||
|
||||
JPanel buttons = new JPanel();
|
||||
buttons = new JPanel();
|
||||
buttons.setLayout(new BoxLayout(buttons, BoxLayout.Y_AXIS));
|
||||
buttons.add(new ToolTipAction("\u2191") {
|
||||
@Override
|
||||
@ -70,24 +66,59 @@ public class ElementOrderer<T> extends JDialog {
|
||||
|
||||
}
|
||||
}.setToolTip(Lang.get("tt_moveItemDown")).createJButton());
|
||||
if (deleteAllowed) {
|
||||
buttons.add(new ToolTipAction("\u274C") {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int i = list.getSelectedIndex();
|
||||
if (i >= 0 && i < data.size()) {
|
||||
listModel.delete(i);
|
||||
}
|
||||
|
||||
}
|
||||
}.setToolTip(Lang.get("tt_deleteItem")).createJButton());
|
||||
}
|
||||
getContentPane().add(buttons, BorderLayout.EAST);
|
||||
|
||||
pack();
|
||||
setLocationRelativeTo(owner);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called to add a ok button
|
||||
*
|
||||
* @return this for chained calls
|
||||
*/
|
||||
public ElementOrderer<T> addOkButton() {
|
||||
JButton okButton = new JButton(new AbstractAction(Lang.get("ok")) {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
okPressed = true;
|
||||
dispose();
|
||||
}
|
||||
});
|
||||
getContentPane().add(okButton, BorderLayout.SOUTH);
|
||||
okPressed = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called to add a delete button
|
||||
*
|
||||
* @return this for chained calls
|
||||
*/
|
||||
public ElementOrderer<T> addDeleteButton() {
|
||||
buttons.add(new ToolTipAction("\u274C") {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int i = list.getSelectedIndex();
|
||||
if (i >= 0 && i < data.size()) {
|
||||
listModel.delete(i);
|
||||
}
|
||||
|
||||
}
|
||||
}.setToolTip(Lang.get("tt_deleteItem")).createJButton());
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the dialog
|
||||
*
|
||||
* @return true if ok was pressed
|
||||
*/
|
||||
public boolean showDialog() {
|
||||
pack();
|
||||
setVisible(true);
|
||||
return okPressed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Container for the items to order
|
||||
*
|
||||
|
@ -131,11 +131,15 @@ public class TableDialog extends JDialog {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ReorderInputs ri = new ReorderInputs(model.getTable());
|
||||
new ElementOrderer<>(parent, Lang.get("menu_table_inputs"), ri.getItems(), true).setVisible(true);
|
||||
try {
|
||||
setModel(new TruthTableTableModel(ri.reorder()));
|
||||
} catch (ExpressionException e1) {
|
||||
new ErrorMessage().addCause(e1).show(TableDialog.this);
|
||||
if (new ElementOrderer<>(parent, Lang.get("menu_table_inputs"), ri.getItems())
|
||||
.addDeleteButton()
|
||||
.addOkButton()
|
||||
.showDialog()) {
|
||||
try {
|
||||
setModel(new TruthTableTableModel(ri.reorder()));
|
||||
} catch (ExpressionException e1) {
|
||||
new ErrorMessage().addCause(e1).show(TableDialog.this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}.createJMenuItem());
|
||||
@ -143,11 +147,15 @@ public class TableDialog extends JDialog {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ReorderOutputs ro = new ReorderOutputs(model.getTable());
|
||||
new ElementOrderer<>(parent, Lang.get("menu_table_inputs"), ro.getItems(), true).setVisible(true);
|
||||
try {
|
||||
setModel(new TruthTableTableModel(ro.reorder()));
|
||||
} catch (ExpressionException e1) {
|
||||
new ErrorMessage().addCause(e1).show(TableDialog.this);
|
||||
if (new ElementOrderer<>(parent, Lang.get("menu_table_outputs"), ro.getItems())
|
||||
.addDeleteButton()
|
||||
.addOkButton()
|
||||
.showDialog()) {
|
||||
try {
|
||||
setModel(new TruthTableTableModel(ro.reorder()));
|
||||
} catch (ExpressionException e1) {
|
||||
new ErrorMessage().addCause(e1).show(TableDialog.this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}.createJMenuItem());
|
||||
|
Loading…
x
Reference in New Issue
Block a user