@Override public JComponent createInterface() { List<TagDocument> tags = signalView.getDocument().getTagDocuments(); int cnt = tags.size(); if (cnt < 2) { throw new SanityCheckException("Too few tag documents"); } tagDocuments = new TagDocument[cnt]; tags.toArray(tagDocuments); analyzeAction = new AnalyzeAction(); JPanel graphicalComparePanel = new JPanel(); graphicalComparePanel.setLayout(new BoxLayout(graphicalComparePanel, BoxLayout.Y_AXIS)); graphicalComparePanel.setBorder(new CompoundBorder( new TitledCrossBorder(_("Graphical comparison"), true), new EmptyBorder(3,3,3,3) )); compareOnRadio = new JRadioButton(_("Comparison mode enabled")); compareOffRadio = new JRadioButton(_("Comparison mode disabled")); ButtonGroup compareGroup = new ButtonGroup(); compareGroup.add(compareOffRadio); compareGroup.add(compareOnRadio); compareOnRadio.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { fillModelFromDialog(getCurrentModel()); } }); graphicalComparePanel.add(compareOffRadio); graphicalComparePanel.add(compareOnRadio); JPanel chooseTagsPanel = new JPanel(); chooseTagsPanel.setLayout(new GridLayout(cnt, 1, 3, 3)); chooseTagsPanel.setBorder(new CompoundBorder( new TitledBorder(_("Choose tag documents (2 required)")), new EmptyBorder(3,3,3,3) )); checkBoxes = new JCheckBox[cnt]; CheckBoxCoordinator checkBoxCoordinator = new CheckBoxCoordinator(); for (int i=0; i<cnt; i++) { final String message; if (tagDocuments[i].getBackingFile() == null) { message = _R("New tag {0}", tagDocuments[i].getName()); } else { message = tagDocuments[i].getName(); } checkBoxes[i] = new JCheckBox(message); chooseTagsPanel.add(checkBoxes[i]); checkBoxes[i].addItemListener(checkBoxCoordinator); } checkBoxes[0].setSelected(true); checkBoxes[1].setSelected(true); JPanel buttonPanel = new JPanel(new BorderLayout()); buttonPanel.setBorder(new EmptyBorder(3,0,0,0)); analyzeButton = new JButton(analyzeAction); buttonPanel.add(analyzeButton, BorderLayout.CENTER); JPanel interfacePanel = new JPanel(new BorderLayout()); interfacePanel.add(graphicalComparePanel, BorderLayout.NORTH); interfacePanel.add(chooseTagsPanel, BorderLayout.CENTER); interfacePanel.add(buttonPanel, BorderLayout.SOUTH); Dimension size = chooseTagsPanel.getPreferredSize(); if (size.width < 270) { size.width = 270; } chooseTagsPanel.setPreferredSize(size); return interfacePanel; }