package ilarkesto.mda.swingeditor;
import ilarkesto.core.scope.In;
import ilarkesto.mda.model.Node;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
public class NodeValuePanel extends JPanel implements NodeSelectionChangedHandler {
@In
SwingModelHelper swingModelHelper;
public NodeValuePanel() {
super(new BorderLayout());
setBorder(new EmptyBorder(10, 10, 10, 10));
}
@Override
public void onNodeSelectionChanged(NodeSelectionChangedEvent event) {
removeAll();
Node node = event.getSelectedNode();
if (node != null) {
Component component = swingModelHelper.createValueComponent(node);
add(createWrapper(component), BorderLayout.CENTER);
}
updateUI();
}
private Component createWrapper(Component component) {
JPanel panel = new JPanel(new BorderLayout());
panel.add(component, BorderLayout.CENTER);
panel.setBorder(new LineBorder(Color.DARK_GRAY));
return panel;
}
}