java-org.hwo/src/org/hwo/bitfields/ui/BitFieldEditor.java

76 lines
1.4 KiB
Java
Raw Normal View History

2014-07-25 23:33:15 +02:00
package org.hwo.bitfields.ui;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import org.hwo.bitfields.BitField;
import org.hwo.bitfields.Field;
public class BitFieldEditor extends JPanel {
private Integer intValue;
private BitField bitField;
private FieldControl[] controls;
public BitFieldEditor() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
}
public Integer getIntValue() {
return intValue;
}
public void setIntValue(Integer intValue) {
this.intValue = intValue;
}
public BitField getBitField() {
return bitField;
}
public void setBitField(BitField bitField) {
this.bitField = bitField;
initializeView();
}
private void initializeView()
{
if (controls != null)
{
for (FieldControl fc: controls)
{
remove(fc.getEditorComponent());
}
}
Field[] fields = bitField.getFields();
controls = new FieldControl[fields.length];
for (int i=0;i<fields.length;i++)
{
if (fields[i].getLength() == 1)
controls[i] = new BoolFieldEditor(fields[i]);
else
controls[i] = new IntFieldEditor(fields[i]);
add(controls[i].getEditorComponent());
}
}
@Override
public boolean requestFocusInWindow() {
if ((controls != null) && controls.length != 0)
{
return controls[0].getEditorComponent().requestFocusInWindow();
}
return false;
}
}