package org.korsakow.ide.ui.dialogs; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Collection; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.border.TitledBorder; import org.korsakow.domain.interf.IResource; import org.korsakow.ide.lang.LanguageBundle; import org.korsakow.ide.ui.components.tree.KNode; import org.korsakow.ide.ui.components.tree.ResourceNode; import org.korsakow.ide.ui.resourceexplorer.ResourceTreeTable; import org.korsakow.ide.ui.resourceexplorer.ResourceTreeTableModel; public class EditingConflictDialog extends JDialog { protected ResourceTreeTable tree; protected ResourceTreeTableModel treeModel; protected JTextArea messageLabel = new JTextArea(); protected JButton cancelButton = new JButton(LanguageBundle.getString("general.cancelbutton.label")); protected JButton breakLinksButton = new JButton(LanguageBundle.getString("general.breaklinksbutton.label")); public EditingConflictDialog(JFrame parent) { super(parent); initUI(); initListeners(); } @Override public void setVisible(boolean visible) { super.setVisible(true); } public void setMessage(String msg) { messageLabel.setText(msg); } public void addConflictItem(IResource item, Collection<IResource> references) { KNode itemNode = ResourceNode.create(item); if (references != null) for (IResource ref : references) { KNode refNode = ResourceNode.create(ref); itemNode.add(refNode); } treeModel.appendNode(itemNode, treeModel.getRoot()); tree.expandNode(tree.getRootNode()); tree.expandAllRecursive(); } public ResourceTreeTableModel getModel() { return treeModel; } protected void initUI() { // setLayout(new BoxLayout()); Box mainPanel = Box.createVerticalBox(); JPanel panel; Box box; add(mainPanel); //panel = new JPanel(); //panel.setLayout(new BorderLayout()); mainPanel.add(messageLabel); //panel.add(messageLabel); messageLabel.setLineWrap(true); messageLabel.setWrapStyleWord(true); messageLabel.setEditable(false); messageLabel.setBackground(new JLabel().getBackground()); messageLabel.setMaximumSize(new Dimension(Integer.MAX_VALUE, messageLabel.getPreferredSize().height)); mainPanel.add(Box.createVerticalGlue()); panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.setBorder(new TitledBorder("Conflicts")); mainPanel.add(panel); tree = new ResourceTreeTable(); treeModel = tree.getTreeTableModel(); tree.setRootVisible(false); panel.add(new JScrollPane(tree)); mainPanel.add(Box.createVerticalGlue()); box = Box.createHorizontalBox(); mainPanel.add(box); box.add(Box.createHorizontalGlue()); box.add(breakLinksButton); box.add(Box.createHorizontalStrut(20)); box.add(cancelButton); box.add(Box.createHorizontalStrut(10)); } protected void initListeners() { cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { onCloseAction(); } }); } protected void onCloseAction() { dispose(); } public void setBreakLinksAction(ActionListener actionListener) { breakLinksButton.removeActionListener(actionListener); breakLinksButton.addActionListener(actionListener); } }