mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-28 07:28:20 -04:00
minor refactorings on the groupEdit function
This commit is contained in:
parent
60c9898d4f
commit
427abf0859
File diff suppressed because it is too large
Load Diff
@ -48,10 +48,11 @@ public final class Keys {
|
|||||||
/**
|
/**
|
||||||
* The size of a LED
|
* The size of a LED
|
||||||
*/
|
*/
|
||||||
public static final Key.KeyInteger SIZE
|
public static final Key<Integer> SIZE
|
||||||
= new Key.KeyInteger("Size", 1)
|
= new Key.KeyInteger("Size", 1)
|
||||||
.setComboBoxValues(new Integer[]{1, 2, 3, 4, 5})
|
.setComboBoxValues(new Integer[]{1, 2, 3, 4, 5})
|
||||||
.setMin(1);
|
.setMin(1)
|
||||||
|
.setGroupEditAllowed(true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The value of constants
|
* The value of constants
|
||||||
|
@ -33,7 +33,7 @@ public class AttributeDialog extends JDialog {
|
|||||||
private final ElementAttributes originalAttributes;
|
private final ElementAttributes originalAttributes;
|
||||||
private final ElementAttributes modifiedAttributes;
|
private final ElementAttributes modifiedAttributes;
|
||||||
private final JPanel buttonPanel;
|
private final JPanel buttonPanel;
|
||||||
private final GBC constrains;
|
private final ConstrainsBuilder constrains;
|
||||||
private HashMap<Key, JCheckBox> checkBoxes;
|
private HashMap<Key, JCheckBox> checkBoxes;
|
||||||
private JComponent topMostTextComponent;
|
private JComponent topMostTextComponent;
|
||||||
private VisualElement visualElement;
|
private VisualElement visualElement;
|
||||||
@ -86,7 +86,7 @@ public class AttributeDialog extends JDialog {
|
|||||||
editors = new ArrayList<>();
|
editors = new ArrayList<>();
|
||||||
|
|
||||||
topMostTextComponent = null;
|
topMostTextComponent = null;
|
||||||
constrains = new GBC().inset(3).fill();
|
constrains = new ConstrainsBuilder().inset(3).fill();
|
||||||
for (Key key : list) {
|
for (Key key : list) {
|
||||||
Editor e = EditorFactory.INSTANCE.create(key, modifiedAttributes.get(key));
|
Editor e = EditorFactory.INSTANCE.create(key, modifiedAttributes.get(key));
|
||||||
editors.add(new EditorHolder(e, key));
|
editors.add(new EditorHolder(e, key));
|
||||||
|
@ -0,0 +1,142 @@
|
|||||||
|
package de.neemann.digital.gui.components;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* More simple to use GridBagConstrains
|
||||||
|
*/
|
||||||
|
public class ConstrainsBuilder extends GridBagConstraints {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance.
|
||||||
|
* Position is set to (0,0)
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder() {
|
||||||
|
gridx = 0;
|
||||||
|
gridy = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ConstrainsBuilder(ConstrainsBuilder original) {
|
||||||
|
gridx = original.gridx;
|
||||||
|
gridy = original.gridy;
|
||||||
|
gridwidth = original.gridwidth;
|
||||||
|
gridheight = original.gridheight;
|
||||||
|
weightx = original.weightx;
|
||||||
|
weighty = original.weighty;
|
||||||
|
ipadx = original.ipadx;
|
||||||
|
ipady = original.ipady;
|
||||||
|
fill = original.fill;
|
||||||
|
insets = original.insets;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the position
|
||||||
|
*
|
||||||
|
* @param x x position
|
||||||
|
* @param y y position
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder pos(int x, int y) {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.gridx = x;
|
||||||
|
c.gridy = y;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the position
|
||||||
|
*
|
||||||
|
* @param x x position
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder x(int x) {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.gridx = x;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the width
|
||||||
|
*
|
||||||
|
* @param x width
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder width(int x) {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.gridwidth = x;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a dynamic height
|
||||||
|
*
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder dynamicHeight() {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.weighty = 1;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a dynamic width
|
||||||
|
*
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder dynamicWidth() {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.weightx = 1;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the padding
|
||||||
|
*
|
||||||
|
* @param x x padding
|
||||||
|
* @param y y padding
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder pad(int x, int y) {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.ipadx = x;
|
||||||
|
c.ipady = y;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the fill attribute to BOTH
|
||||||
|
*
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder fill() {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.fill = GridBagConstraints.BOTH;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets insets to a border of width b
|
||||||
|
*
|
||||||
|
* @param b border width
|
||||||
|
* @return the new created ConstrainsBuilder instance
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder inset(int b) {
|
||||||
|
ConstrainsBuilder c = new ConstrainsBuilder(this);
|
||||||
|
c.insets = new Insets(b, b, b, b);
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increases the row.
|
||||||
|
* Does not create a new instance!
|
||||||
|
*
|
||||||
|
* @return this for chained calls
|
||||||
|
*/
|
||||||
|
public ConstrainsBuilder nextRow() {
|
||||||
|
gridx = 0;
|
||||||
|
gridy++;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -25,5 +25,5 @@ public interface Editor<T> {
|
|||||||
* @param dialog the containing dialog
|
* @param dialog the containing dialog
|
||||||
* @param constrains the constrains used to place the components in the panel
|
* @param constrains the constrains used to place the components in the panel
|
||||||
*/
|
*/
|
||||||
void addToPanel(JPanel panel, Key key, ElementAttributes elementAttributes, AttributeDialog dialog, GBC constrains);
|
void addToPanel(JPanel panel, Key key, ElementAttributes elementAttributes, AttributeDialog dialog, ConstrainsBuilder constrains);
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ public final class EditorFactory {
|
|||||||
private boolean labelAtTop = false;
|
private boolean labelAtTop = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addToPanel(JPanel panel, Key key, ElementAttributes elementAttributes, AttributeDialog attributeDialog, GBC constrains) {
|
public void addToPanel(JPanel panel, Key key, ElementAttributes elementAttributes, AttributeDialog attributeDialog, ConstrainsBuilder constrains) {
|
||||||
this.attributeDialog = attributeDialog;
|
this.attributeDialog = attributeDialog;
|
||||||
JLabel label = new JLabel(key.getName() + ": ");
|
JLabel label = new JLabel(key.getName() + ": ");
|
||||||
final String description = new LineBreaker().toHTML().breakLines(key.getDescription());
|
final String description = new LineBreaker().toHTML().breakLines(key.getDescription());
|
||||||
@ -256,7 +256,7 @@ public final class EditorFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addToPanel(JPanel panel, Key key, ElementAttributes elementAttributes, AttributeDialog attributeDialog, GBC constrains) {
|
public void addToPanel(JPanel panel, Key key, ElementAttributes elementAttributes, AttributeDialog attributeDialog, ConstrainsBuilder constrains) {
|
||||||
panel.add(bool, constrains.width(2));
|
panel.add(bool, constrains.width(2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,144 +0,0 @@
|
|||||||
package de.neemann.digital.gui.components;
|
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* More simple to use GridBagConstrains
|
|
||||||
*/
|
|
||||||
public class GBC extends GridBagConstraints {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new instance.
|
|
||||||
* Position is set to (0,0)
|
|
||||||
*/
|
|
||||||
public GBC() {
|
|
||||||
gridx = 0;
|
|
||||||
gridy = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private GBC copy() {
|
|
||||||
GBC n = new GBC();
|
|
||||||
n.gridx = gridx;
|
|
||||||
n.gridy = gridy;
|
|
||||||
n.gridwidth = gridwidth;
|
|
||||||
n.gridheight = gridheight;
|
|
||||||
n.weightx = weightx;
|
|
||||||
n.weighty = weighty;
|
|
||||||
n.ipadx = ipadx;
|
|
||||||
n.ipady = ipady;
|
|
||||||
n.fill = fill;
|
|
||||||
n.insets = insets;
|
|
||||||
return n;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the position
|
|
||||||
*
|
|
||||||
* @param x x position
|
|
||||||
* @param y y position
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC pos(int x, int y) {
|
|
||||||
GBC c = copy();
|
|
||||||
c.gridx = x;
|
|
||||||
c.gridy = y;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the position
|
|
||||||
*
|
|
||||||
* @param x x position
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC x(int x) {
|
|
||||||
GBC c = copy();
|
|
||||||
c.gridx = x;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the width
|
|
||||||
*
|
|
||||||
* @param x width
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC width(int x) {
|
|
||||||
GBC c = copy();
|
|
||||||
c.gridwidth = x;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a dynamic height
|
|
||||||
*
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC dynamicHeight() {
|
|
||||||
GBC c = copy();
|
|
||||||
c.weighty = 1;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets a dynamic width
|
|
||||||
*
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC dynamicWidth() {
|
|
||||||
GBC c = copy();
|
|
||||||
c.weightx = 1;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the padding
|
|
||||||
*
|
|
||||||
* @param x x padding
|
|
||||||
* @param y y padding
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC pad(int x, int y) {
|
|
||||||
GBC c = copy();
|
|
||||||
c.ipadx = x;
|
|
||||||
c.ipady = y;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the fill attribute to BOTH
|
|
||||||
*
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC fill() {
|
|
||||||
GBC c = copy();
|
|
||||||
c.fill = GridBagConstraints.BOTH;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets insets to a border of width b
|
|
||||||
*
|
|
||||||
* @param b border width
|
|
||||||
* @return the new created GBC instance
|
|
||||||
*/
|
|
||||||
public GBC inset(int b) {
|
|
||||||
GBC c = copy();
|
|
||||||
c.insets = new Insets(b, b, b, b);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Increases the row.
|
|
||||||
* Does not create a new instance
|
|
||||||
*
|
|
||||||
* @return this for chained calls
|
|
||||||
*/
|
|
||||||
public GBC nextRow() {
|
|
||||||
gridx = 0;
|
|
||||||
gridy++;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -90,7 +90,7 @@ public final class SingleValueDialog extends JDialog implements ModelStateObserv
|
|||||||
});
|
});
|
||||||
|
|
||||||
JPanel panel = new JPanel(new GridBagLayout());
|
JPanel panel = new JPanel(new GridBagLayout());
|
||||||
GBC constr = new GBC().inset(3).fill();
|
ConstrainsBuilder constr = new ConstrainsBuilder().inset(3).fill();
|
||||||
panel.add(formatComboBox, constr);
|
panel.add(formatComboBox, constr);
|
||||||
panel.add(textField, constr.dynamicWidth().x(1));
|
panel.add(textField, constr.dynamicWidth().x(1));
|
||||||
constr.nextRow();
|
constr.nextRow();
|
||||||
|
@ -1015,7 +1015,7 @@ eine <a href="https://github.com/hneemann/Digital/issues/new?labels=enha
|
|||||||
<string name="msg_modelHasErrors">Es kann nur eine fehlerfreie Schaltung exportiert werden!</string>
|
<string name="msg_modelHasErrors">Es kann nur eine fehlerfreie Schaltung exportiert werden!</string>
|
||||||
<string name="msg_noKVMapAvailable">Keine KV-Tafel verfügbar!</string>
|
<string name="msg_noKVMapAvailable">Keine KV-Tafel verfügbar!</string>
|
||||||
<string name="msg_dataNotUpdatedAnymore">Daten werden nicht mehr aktualisiert!</string>
|
<string name="msg_dataNotUpdatedAnymore">Daten werden nicht mehr aktualisiert!</string>
|
||||||
<string name="msg_modifyThisAttribute">Diesen Wert setzen</string>
|
<string name="msg_modifyThisAttribute">Diesen Wert verändern.</string>
|
||||||
|
|
||||||
<string name="ok">Ok</string>
|
<string name="ok">Ok</string>
|
||||||
<string name="rot_0">0°</string>
|
<string name="rot_0">0°</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user