package org.korsakow.ide.ui; import java.awt.BorderLayout; import java.awt.Component; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import org.korsakow.ide.lang.LanguageBundle; import org.korsakow.ide.resources.ResourceType; import org.korsakow.ide.ui.components.KLayoutPanel; import org.korsakow.ide.ui.resources.ResourceView; import org.korsakow.ide.util.OrderedEventListenerList; import org.korsakow.ide.util.UIResourceManager; public class ResourceEditor extends JFrame { //private DefaultResourceEditorController controller; private final OrderedEventListenerList listeners = new OrderedEventListenerList(); private ResourceView resourceView; private KLayoutPanel resourcePanel; protected JButton saveButton; protected JButton saveCopyButton; protected Component saveCopySpacer; protected JButton cancelButton; public ResourceEditor() { //controller = new DefaultResourceEditorController(this); initUI(); initListeners(); } private void initUI() { setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // setBackground(UIManager.getColor("window")); // getContentPane().setBackground(UIManager.getColor("window")); setLayout(new BorderLayout()); // setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS)); // setLayout(new FlowLayout(FlowLayout.LEFT)); setIconImage(UIResourceManager.getImage(UIResourceManager.ICON_WINDOW_ICON)); Box box; Box mainPanel = Box.createVerticalBox(); add(mainPanel); mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10)); box = Box.createHorizontalBox(); mainPanel.add(box); box.add(Box.createHorizontalGlue()); resourcePanel = new KLayoutPanel(); resourcePanel.setLayout(new BorderLayout()); mainPanel.add(resourcePanel); mainPanel.add(Box.createVerticalGlue()); box = Box.createHorizontalBox(); mainPanel.add(box); box.add(Box.createHorizontalGlue()); box.add(saveButton = new JButton(LanguageBundle.getString("resourceeditor.savebutton.label"))); box.add(Box.createHorizontalStrut(15)); box.add(saveCopyButton = new JButton(LanguageBundle.getString("resourceeditor.saveCopybutton.label"))); saveCopyButton.setVisible( false ); saveCopySpacer = box.add(Box.createHorizontalStrut(15)); saveCopySpacer.setVisible( false ); box.add(cancelButton = new JButton(LanguageBundle.getString("resourceeditor.cancelbutton.label"))); } private void initListeners() { addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { if (resourceView != null) resourceView.dispose(); } }); } public void addSaveActionListener(ActionListener listener) { saveButton.addActionListener(listener); } public void addSaveCopyActionListener(ActionListener listener) { saveCopyButton.addActionListener(listener); } public void addCancelActionListener(ActionListener listener) { cancelButton.addActionListener(listener); } public void setSaveCopyVisible( boolean enabled ) { saveCopyButton.setVisible( enabled ); saveCopySpacer.setVisible( enabled ); } public void setResourceView(ResourceView resourceView, ResourceType resourceType) { if (this.resourceView != null) resourcePanel.remove(this.resourceView); this.resourceView = resourceView; resourcePanel.add(resourceView); setTitle(LanguageBundle.getString("resourceditor.window.title", resourceType.getDisplayString())); } public ResourceView getResourceView() { return resourceView; } public JButton getOKButton() { return saveButton; } }