Exemplo n.º 1
0
	@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;

	}