package org.korsakow.ide.resources.widget; import java.util.Collection; import javax.swing.JComponent; import javax.swing.event.ChangeEvent; import javax.swing.event.EventListenerList; import org.korsakow.ide.ui.components.KLayoutPanel; import org.korsakow.ide.ui.interfacebuilder.WidgetCanvasModel; /** * Provides a basic abstract class for widget editors used with a WidgetCanvas * @author d * */ public class AbstractWidgetPropertiesEditor extends KLayoutPanel implements WidgetPropertiesEditor { protected EventListenerList listenerlist = new EventListenerList(); protected Collection<? extends WidgetModel> widgets; protected WidgetCanvasModel canvasModel; public AbstractWidgetPropertiesEditor(Collection<WidgetModel> widgets) { this.widgets = widgets; } public JComponent getWidgetPropertiesEditorComponent(WidgetCanvasModel canvasModel) { this.canvasModel = canvasModel; return this; } public WidgetCanvasModel getCanvasModel() { return canvasModel; } public void addWidgetPropertiesEditorListener(WidgetPropertiesEditorListener listener) { listenerlist.add(WidgetPropertiesEditorListener.class, listener); } public void removeWidgetPropertiesEditorListener(WidgetPropertiesEditorListener listener) { listenerlist.remove(WidgetPropertiesEditorListener.class, listener); } public void fireEditingStopped() { ChangeEvent event = new ChangeEvent(this); for (WidgetPropertiesEditorListener listener : listenerlist.getListeners(WidgetPropertiesEditorListener.class)) listener.editingStopped(event); } public void fireEditingCanceled() { ChangeEvent event = new ChangeEvent(this); for (WidgetPropertiesEditorListener listener : listenerlist.getListeners(WidgetPropertiesEditorListener.class)) listener.editingCanceled(event); } public void firePropertyEditingStopped() { ChangeEvent event = new ChangeEvent(this); for (WidgetPropertiesEditorListener listener : listenerlist.getListeners(WidgetPropertiesEditorListener.class)) listener.propertyEditingStopped(event); } public void firePropertyEditingCanceled() { ChangeEvent event = new ChangeEvent(this); for (WidgetPropertiesEditorListener listener : listenerlist.getListeners(WidgetPropertiesEditorListener.class)) listener.propertyEditingCanceled(event); } public void stopEditing() { fireEditingStopped(); } public void cancelEditing() { fireEditingCanceled(); } }