final JLabel metLabel = new JLabel("Static Metadata");
metLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
final JLabel extendsLabel = new JLabel("<extends>");
extendsLabel.setFont(new Font("Serif", Font.PLAIN, 10));
extendsLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
extendsLabel.addMouseListener(new MouseListener() {
private JScrollPane availableScroller;
private JScrollPane mineScroller;
private JList mineList;
private JList availableList;
private DefaultListModel mineModel;
private DefaultListModel availableModel;
public void mouseClicked(MouseEvent e) {
final JPopupMenu popup = new JPopupMenu();
popup.setLayout(new BorderLayout());
JPanel main = new JPanel();
main.setLayout(new BoxLayout(main, BoxLayout.X_AXIS));
JPanel mine = new JPanel();
mine.setBorder(new EtchedBorder());
mine.setLayout(new BorderLayout());
JLabel mineLabel = new JLabel("Mine");
mineScroller = new JScrollPane(mineList = createJList(
mineModel = new DefaultListModel(), state.getSelected()
.getModel().getExtendsConfig()));
mineScroller.setPreferredSize(new Dimension(250, 80));
mine.add(mineLabel, BorderLayout.NORTH);
mine.add(mineScroller, BorderLayout.CENTER);
JPanel available = new JPanel();
available.setBorder(new EtchedBorder());
available.setLayout(new BorderLayout());
JLabel availableLabel = new JLabel("Available");
Vector<String> availableGroups = new Vector<String>(state
.getGlobalConfigGroups().keySet());
availableGroups.removeAll(state.getSelected().getModel()
.getExtendsConfig());
availableScroller = new JScrollPane(availableList = this.createJList(
availableModel = new DefaultListModel(), availableGroups));
availableScroller.setPreferredSize(new Dimension(250, 80));
available.add(availableLabel, BorderLayout.NORTH);
available.add(availableScroller, BorderLayout.CENTER);
JPanel buttons = new JPanel();
buttons.setLayout(new BoxLayout(buttons, BoxLayout.Y_AXIS));
JButton addButton = new JButton("<---");
addButton.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
String selected = availableList.getSelectedValue().toString();
Vector<String> extendsConfig = new Vector<String>(state
.getSelected().getModel().getExtendsConfig());
extendsConfig.add(selected);
state.getSelected().getModel().setExtendsConfig(extendsConfig);
availableModel.remove(availableList.getSelectedIndex());
mineModel.addElement(selected);
popup.revalidate();
DefaultPropView.this.notifyListeners();
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
JButton removeButton = new JButton("--->");
removeButton.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
String selected = mineList.getSelectedValue().toString();
Vector<String> extendsConfig = new Vector<String>(state
.getSelected().getModel().getExtendsConfig());