|
From: <pb...@fe...> - 2012-12-16 17:47:15
|
Author: pboy
Date: 2012-12-16 17:47:04 +0000 (Sun, 16 Dec 2012)
New Revision: 2377
Added:
trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageComponentAttachListener.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java
Removed:
trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAttachListener.java
Modified:
trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java
trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStepEdit.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/SecurityPropertyEditor.java
Log:
ImageSelectPage & ImagePane: Various fixes (on behalf of quasimodo)
Added: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java (rev 0)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -0,0 +1,92 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.arsdigita.cms.ui;
+
+import com.arsdigita.bebop.Component;
+import com.arsdigita.bebop.FormProcessException;
+import com.arsdigita.bebop.MapComponentSelectionModel;
+import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.event.FormInitListener;
+import com.arsdigita.bebop.event.FormProcessListener;
+import com.arsdigita.bebop.event.FormSectionEvent;
+import com.arsdigita.cms.ReusableImageAsset;
+import java.util.Iterator;
+import java.util.Map;
+import org.apache.log4j.Logger;
+
+/**
+ *
+ * @author Sören Bernstein (quasimodo) <sbe...@ze...>
+ */
+public abstract class ImageComponentAbstractListener implements FormInitListener, FormProcessListener {
+
+ private static final Logger s_log = Logger.getLogger(ImageComponentSelectListener.class);
+ MapComponentSelectionModel m_imageComponent;
+
+ public ImageComponentAbstractListener(MapComponentSelectionModel imageComponent) {
+ super();
+ m_imageComponent = imageComponent;
+ }
+
+ public void init(FormSectionEvent event)
+ throws FormProcessException {
+ PageState ps = event.getPageState();
+ if (!m_imageComponent.isSelected(ps)) {
+ setImageComponent(ps, ImageComponent.LIBRARY);
+ }
+ }
+
+ public void process(FormSectionEvent event) throws FormProcessException {
+ PageState ps = event.getPageState();
+ ImageComponent component = getImageComponent(ps);
+
+ if (!component.getSaveCancelSection().getSaveButton().isSelected(ps)) {
+ return;
+ }
+
+ ReusableImageAsset image = component.getImage(event);
+
+ processImage(event, ps, component, image);
+ }
+
+ protected abstract void processImage(FormSectionEvent event, PageState ps, ImageComponent component, ReusableImageAsset image);
+
+ protected ImageComponent getImageComponent(PageState ps) {
+ if (!m_imageComponent.isSelected(ps)) {
+ if (s_log.isDebugEnabled()) {
+ s_log.debug("No component selected");
+ s_log.debug("Selected: " + m_imageComponent.getComponent(ps));
+ }
+
+ m_imageComponent.setSelectedKey(ps, ImageComponent.UPLOAD);
+ }
+
+ return (ImageComponent) m_imageComponent.getComponent(ps);
+
+ }
+
+ protected void setImageComponent(PageState ps, final String activeKey) {
+ m_imageComponent.setSelectedKey(ps, activeKey);
+
+ if (s_log.isDebugEnabled()) {
+ s_log.debug("Selected component: " + activeKey);
+ }
+
+ Map componentsMap = m_imageComponent.getComponentsMap();
+ Iterator i = componentsMap.keySet().iterator();
+ while (i.hasNext()) {
+ Object key = i.next();
+ Component component = (Component) componentsMap.get(key);
+
+ boolean isVisible = activeKey.equals(key);
+
+ if (s_log.isDebugEnabled()) {
+ s_log.debug("Key: " + key + "; Visibility: " + isVisible);
+ }
+
+ ps.setVisible(component, isVisible);
+ }
+ }
+}
Deleted: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAttachListener.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAttachListener.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAttachListener.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -1,116 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.arsdigita.cms.ui;
-
-import com.arsdigita.bebop.Component;
-import com.arsdigita.bebop.FormProcessException;
-import com.arsdigita.bebop.MapComponentSelectionModel;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.event.FormInitListener;
-import com.arsdigita.bebop.event.FormProcessListener;
-import com.arsdigita.bebop.event.FormSectionEvent;
-import com.arsdigita.cms.ReusableImageAsset;
-import java.util.Iterator;
-import java.util.Map;
-import org.apache.log4j.Logger;
-
-/**
- *
- * @author Sören Bernstein (quasimodo) <sbe...@ze...>
- */
-public class ImageComponentAttachListener implements FormInitListener, FormProcessListener {
-
- private static final Logger s_log = Logger.getLogger(ImageComponentSelectListener.class);
- MapComponentSelectionModel m_imageComponent;
-
- public ImageComponentAttachListener(MapComponentSelectionModel imageComponent) {
- super();
- m_imageComponent = imageComponent;
- }
-
- public void init(FormSectionEvent event)
- throws FormProcessException {
- PageState ps = event.getPageState();
- setImageComponent(ps, ImageComponent.LIBRARY);
-
-// ItemImageAttachment attachment = m_imageStep.getAttachment(ps);
-// if (null == attachment) {
- // XXX: Do something
-// }
- }
-
- public void process(FormSectionEvent event) throws FormProcessException {
- PageState ps = event.getPageState();
- ImageComponent component = getImageComponent(ps);
-
- if (!component.getSaveCancelSection().getSaveButton().isSelected(ps)) {
- return;
- }
-
- ReusableImageAsset image = component.getImage(event);
-
-
-// ContentItem item = m_imageStep.getItem(ps);
-// if (null == item) {
-// s_log.error("No item selected in ImageStepEdit",
-// new RuntimeException());
-// return;
-// }
-
-// ItemImageAttachment attachment = m_imageStep.getAttachment(ps);
-// if (null == attachment) {
-// attachment = new ItemImageAttachment(item, image);
-// }
-// attachment.setCaption(component.getCaption(event));
-
- // We only set the description and title based on the UI in
- // the case where getIsImageStepDescriptionAndTitleShown is true.
- // Otherwise, we leave this as the default value. This means
- // existing values are not overwritten if the image is edited when
- // isImageStepDescriptionAndTitleShown is false.
-// if (ItemImageAttachment.getConfig().getIsImageStepDescriptionAndTitleShown()) {
-// attachment.setDescription(component.getDescription(event));
-// attachment.setTitle(component.getTitle(event));
-// }
-// attachment.setUseContext(component.getUseContext(event));
- }
-
- private ImageComponent getImageComponent(PageState ps) {
- if (!m_imageComponent.isSelected(ps)) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("No component selected");
- s_log.debug("Selected: " + m_imageComponent.getComponent(ps));
- }
-
- m_imageComponent.setSelectedKey(ps, ImageComponent.UPLOAD);
- }
-
- return (ImageComponent) m_imageComponent.getComponent(ps);
-
- }
-
- private void setImageComponent(PageState ps, final String activeKey) {
- m_imageComponent.setSelectedKey(ps, activeKey);
-
- if (s_log.isDebugEnabled()) {
- s_log.debug("Selected component: " + activeKey);
- }
-
- Map componentsMap = m_imageComponent.getComponentsMap();
- Iterator i = componentsMap.keySet().iterator();
- while (i.hasNext()) {
- Object key = i.next();
- Component component = (Component) componentsMap.get(key);
-
- boolean isVisible = activeKey.equals(key);
-
- if (s_log.isDebugEnabled()) {
- s_log.debug("Key: " + key + "; Visibility: " + isVisible);
- }
-
- ps.setVisible(component, isVisible);
- }
- }
-}
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -4,51 +4,26 @@
*/
package com.arsdigita.cms.ui;
-import com.arsdigita.bebop.Component;
-import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.MapComponentSelectionModel;
import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.event.FormInitListener;
-import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.cms.ReusableImageAsset;
import java.math.BigDecimal;
-import java.util.Iterator;
-import java.util.Map;
import org.apache.log4j.Logger;
/**
*
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
-public class ImageComponentSelectListener implements FormInitListener, FormProcessListener {
+public class ImageComponentSelectListener extends ImageComponentAbstractListener {
private static final Logger s_log = Logger.getLogger(ImageComponentSelectListener.class);
- MapComponentSelectionModel m_imageComponent;
public ImageComponentSelectListener(MapComponentSelectionModel imageComponent) {
- super();
- m_imageComponent = imageComponent;
+ super(imageComponent);
}
- public void init(FormSectionEvent event)
- throws FormProcessException {
- PageState ps = event.getPageState();
-
- this.m_imageComponent.getComponent(ps);
- setImageComponent(ps, ImageComponent.LIBRARY);
- }
-
- public void process(FormSectionEvent event) throws FormProcessException {
- PageState ps = event.getPageState();
- ImageComponent component = getImageComponent(ps);
-
- if (!component.getSaveCancelSection().getSaveButton().isSelected(ps)) {
- return;
- }
-
- ReusableImageAsset image = component.getImage(event);
-
+ protected void processImage(FormSectionEvent event, PageState ps, ImageComponent component, ReusableImageAsset image) {
// SELECT {
String name = image.getDisplayName();
BigDecimal id = image.getID();
@@ -56,41 +31,4 @@
BigDecimal height = image.getHeight();
// SELECT }
}
-
- private ImageComponent getImageComponent(PageState ps) {
- if (!m_imageComponent.isSelected(ps)) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("No component selected");
- s_log.debug("Selected: " + m_imageComponent.getComponent(ps));
- }
-
- m_imageComponent.setSelectedKey(ps, ImageComponent.UPLOAD);
- }
-
- return (ImageComponent) m_imageComponent.getComponent(ps);
-
- }
-
- private void setImageComponent(PageState ps, final String activeKey) {
- m_imageComponent.setSelectedKey(ps, activeKey);
-
- if (s_log.isDebugEnabled()) {
- s_log.debug("Selected component: " + activeKey);
- }
-
- Map componentsMap = m_imageComponent.getComponentsMap();
- Iterator i = componentsMap.keySet().iterator();
- while (i.hasNext()) {
- Object key = i.next();
- Component component = (Component) componentsMap.get(key);
-
- boolean isVisible = activeKey.equals(key);
-
- if (s_log.isDebugEnabled()) {
- s_log.debug("Key: " + key + "; Visibility: " + isVisible);
- }
-
- ps.setVisible(component, isVisible);
- }
- }
}
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -10,6 +10,7 @@
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.Resettable;
import com.arsdigita.bebop.SaveCancelSection;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.event.ActionListener;
@@ -27,7 +28,7 @@
*
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
-public class ImageLibraryComponent extends SimpleContainer implements ImageComponent {
+public class ImageLibraryComponent extends SimpleContainer implements ImageComponent, Resettable {
private final ImageChooser m_chooser;
private final ItemSelectionModel m_imageModel;
@@ -158,4 +159,11 @@
add(upload, ColumnPanel.FULL_WIDTH);
}
}
+
+ // Reset this component
+ public void reset(PageState ps) {
+ // clear selection
+ m_imageModel.clearSelection(ps);
+ m_chooser.clearKeyword(ps);
+ }
}
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -6,9 +6,14 @@
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.MapComponentSelectionModel;
+import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.ParameterSingleSelectionModel;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.TabbedPane;
+import com.arsdigita.bebop.event.ActionEvent;
+import com.arsdigita.bebop.event.ActionListener;
+import com.arsdigita.bebop.event.RequestEvent;
+import com.arsdigita.bebop.event.RequestListener;
import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.CMSConfig;
@@ -31,6 +36,7 @@
private BigDecimalParameter m_sectionId;
private final StringParameter m_imageComponentKey;
private final MapComponentSelectionModel m_imageComponent;
+ private final ImageComponentSelectListener m_selectListener;
private static final CMSConfig s_conf = CMSConfig.getInstance();
private static final boolean LIMIT_TO_CONTENT_SECTION = false;
public static final String CONTENT_SECTION = "section_id";
@@ -49,20 +55,35 @@
new ParameterSingleSelectionModel(m_imageComponentKey);
m_imageComponent =
new MapComponentSelectionModel(componentModel, new HashMap());
+ m_selectListener = new ImageComponentSelectListener(m_imageComponent);
m_tabbedPane = createTabbedPane();
m_tabbedPane.setIdAttr("page-body");
add(m_tabbedPane);
+ // ActionListener to change the image component state param to the right value
+ addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ final PageState ps = event.getPageState();
+
+ if (m_tabbedPane.getCurrentPane(ps).equals(m_imageLibrary)) {
+ m_imageComponent.setSelectedKey(ps, ImageComponent.LIBRARY);
+ }
+ if (m_tabbedPane.getCurrentPane(ps).equals(m_imageUpload)) {
+ m_imageComponent.setSelectedKey(ps, ImageComponent.UPLOAD);
+ }
+
+ }
+ });
addGlobalStateParam(m_imageComponentKey);
}
protected ImageLibraryComponent getImageLibraryPane() {
if (m_imageLibrary == null) {
m_imageLibrary = new ImageLibraryComponent(ImageComponent.SELECT_IMAGE);
- m_imageLibrary.getForm().addInitListener(new ImageComponentSelectListener(m_imageComponent));
- m_imageLibrary.getForm().addProcessListener(new ImageComponentSelectListener(m_imageComponent));
+ m_imageLibrary.getForm().addInitListener(m_selectListener);
+ m_imageLibrary.getForm().addProcessListener(m_selectListener);
m_imageComponent.getComponentsMap().put(ImageComponent.LIBRARY, m_imageLibrary);
}
return m_imageLibrary;
@@ -72,8 +93,8 @@
if (m_imageUpload == null) {
m_imageUpload = new ImageUploadComponent(ImageComponent.SELECT_IMAGE);
- m_imageUpload.getForm().addInitListener(new ImageComponentSelectListener(m_imageComponent));
- m_imageUpload.getForm().addProcessListener(new ImageComponentSelectListener(m_imageComponent));
+ m_imageUpload.getForm().addInitListener(m_selectListener);
+ m_imageUpload.getForm().addProcessListener(m_selectListener);
m_imageComponent.getComponentsMap().put(ImageComponent.UPLOAD, m_imageUpload);
}
return m_imageUpload;
@@ -83,8 +104,8 @@
TabbedPane pane = new TabbedPane();
pane.setClassAttr(XSL_CLASS);
- addToPane(pane, "library", getImageLibraryPane());
- addToPane(pane, "upload", getImageUploadPane());
+ addToPane(pane, ImageComponent.LIBRARY, getImageLibraryPane());
+ addToPane(pane, ImageComponent.UPLOAD, getImageUploadPane());
pane.setDefaultPane(m_imageLibrary);
return pane;
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -32,6 +32,7 @@
//private ImageChooser imageChooser;
private final StringParameter m_imageComponentKey;
private final MapComponentSelectionModel m_imageComponent;
+// private final ImageComponentAdminListener m_adminListener;
public ImagesPane() {
// Left column is empty, this is only to provide the same layout for all
@@ -47,20 +48,21 @@
m_imageComponent = new MapComponentSelectionModel(componentModel, new HashMap());
Map selectors = m_imageComponent.getComponentsMap();
-
+// m_adminListener = new ImageComponentAdminListener(m_imageComponent);
+
ImageUploadComponent upload = new ImageUploadComponent(ImageComponent.ADMIN_IMAGES);
- //upload.getForm().addInitListener(new ImageComponentAdminListener(m_imageComponent));
// For future use
- // upload.addProcessListener(new ImageComponentAdminListener(m_imageComponent));
+ //upload.getForm().addInitListener(m_adminListener);
+ // upload.addProcessListener(m_adminListener);
selectors.put(ImageComponent.UPLOAD, upload);
body.addSegment(
new Label(GlobalizationUtil.globalize("cms.ui.image_upload")),
upload);
ImageLibraryComponent library = new ImageLibraryComponent(ImageComponent.ADMIN_IMAGES);
- //library.getForm().addInitListener(new ImageComponentAdminListener(m_imageComponent));
// For future use
- // library.getForm().addProcessListener(new ImageComponentAdminListener);
+ //library.getForm().addInitListener(m_adminListener);
+ // library.getForm().addProcessListener(m_adminListener);
// library.addUploadLink(new ActionListener() {
//
// public void actionPerformed(ActionEvent ev) {
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/SecurityPropertyEditor.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/SecurityPropertyEditor.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/SecurityPropertyEditor.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -225,6 +225,7 @@
* @param form The form
* @param cancelButton the "Cancel" button on the form
*/
+ @Override
public void addListeners(FormSection form, Submit cancelButton) {
addSecurityListener(form);
super.addListeners(form, cancelButton);
@@ -247,6 +248,7 @@
super();
}
+ @Override
public PropertyEditorModel makeModel(PropertyEditor p, PageState s) {
return new AccessListModel (
getProperties(p),
@@ -273,16 +275,19 @@
m_manager = Utilities.getSecurityManager(m_state);
}
+ @Override
public boolean next() {
while(super.next()) {
Object key = getKey();
ComponentAccess ca = (ComponentAccess)m_access.get(key);
- if(ca == null) // No access restricitons
+ if(ca == null) {
return true;
+ }
- if ( ca.canAccess(m_state, m_manager) ) // Access checks out
+ if ( ca.canAccess(m_state, m_manager) ) {
return true;
+ }
// Otherwise, skip the property
}
Added: trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageComponentAttachListener.java
===================================================================
--- trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageComponentAttachListener.java (rev 0)
+++ trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageComponentAttachListener.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -0,0 +1,48 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.arsdigita.cms.contentassets.ui;
+
+import com.arsdigita.bebop.MapComponentSelectionModel;
+import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.event.FormSectionEvent;
+import com.arsdigita.cms.ContentItem;
+import com.arsdigita.cms.ReusableImageAsset;
+import com.arsdigita.cms.contentassets.ItemImageAttachment;
+import com.arsdigita.cms.ui.ImageComponent;
+import com.arsdigita.cms.ui.ImageComponentAbstractListener;
+import org.apache.log4j.Logger;
+
+/**
+ *
+ * @author Sören Bernstein (quasimodo) <sbe...@ze...>
+ */
+public class ImageComponentAttachListener extends ImageComponentAbstractListener {
+
+ private final ImageStep m_imageStep;
+ private static final Logger s_log = Logger.getLogger(ImageComponentAttachListener.class);
+
+ public ImageComponentAttachListener(MapComponentSelectionModel imageComponent, ImageStep imageStep) {
+ super(imageComponent);
+ m_imageStep = imageStep;
+ }
+
+ @Override
+ protected void processImage(FormSectionEvent event, PageState ps, ImageComponent component, ReusableImageAsset image) {
+ ContentItem item = m_imageStep.getItem(ps);
+ if (null == item) {
+ s_log.error("No item selected in ImageStepEdit",
+ new RuntimeException());
+ return;
+ }
+ ItemImageAttachment attachment = m_imageStep.getAttachment(ps);
+ if (null == attachment) {
+ attachment = new ItemImageAttachment(item, image);
+ }
+
+ attachment.setCaption(component.getCaption(event));
+
+// setImageComponent(ps, ImageComponent.LIBRARY);
+ }
+}
Modified: trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java
===================================================================
--- trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -75,7 +75,6 @@
new WorkflowLockedComponentAccess( m_add, m_itemSelection );
addComponent( "add", "Add Image", addCA );
-
m_display = new ImageStepDisplay( this );
setDisplayComponent(m_display);
@@ -175,4 +174,10 @@
return m_attachmentOID;
}
}
+
+ @Override
+ public void showDisplayPane(PageState state) {
+ super.showDisplayPane(state);
+ m_add.reset(state);
+ }
}
Modified: trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStepEdit.java
===================================================================
--- trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStepEdit.java 2012-12-16 09:35:50 UTC (rev 2376)
+++ trunk/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStepEdit.java 2012-12-16 17:47:04 UTC (rev 2377)
@@ -27,15 +27,11 @@
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.event.ActionListener;
-import com.arsdigita.bebop.event.FormInitListener;
-import com.arsdigita.bebop.event.FormProcessListener;
-import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.ParameterEvent;
import com.arsdigita.bebop.event.ParameterListener;
import com.arsdigita.bebop.parameters.ParameterData;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ContentItem;
-import com.arsdigita.cms.ReusableImageAsset;
import com.arsdigita.cms.contentassets.ItemImageAttachment;
import com.arsdigita.cms.ui.ImageComponent;
import com.arsdigita.cms.ui.ImageLibraryComponent;
@@ -47,16 +43,18 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-
import org.apache.log4j.Logger;
public class ImageStepEdit extends SimpleContainer
- implements Resettable, FormProcessListener, FormInitListener {
+ implements Resettable/*
+ * , FormProcessListener, FormInitListener
+ */ {
private static final Logger s_log = Logger.getLogger(ImageStepEdit.class);
private final ImageStep m_imageStep;
private final StringParameter m_imageComponentKey;
private final MapComponentSelectionModel m_imageComponent;
+ private final ImageComponentAttachListener m_attachListener;
public ImageStepEdit(ImageStep step) {
m_imageStep = step;
@@ -69,10 +67,11 @@
new MapComponentSelectionModel(componentModel, new HashMap());
Map selectors = m_imageComponent.getComponentsMap();
+ m_attachListener = new ImageComponentAttachListener(m_imageComponent, m_imageStep);
ImageLibraryComponent library = new ImageLibraryComponent();
- library.getForm().addInitListener(this);
- library.getForm().addProcessListener(this);
+ library.getForm().addInitListener(m_attachListener);
+ library.getForm().addProcessListener(m_attachListener);
library.addUploadLink(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
@@ -81,10 +80,10 @@
});
selectors.put(ImageComponent.LIBRARY, library);
add(library);
-
+
ImageUploadComponent upload = new ImageUploadComponent();
- upload.getForm().addInitListener(this);
- upload.getForm().addProcessListener(this);
+ upload.getForm().addInitListener(m_attachListener);
+ upload.getForm().addProcessListener(m_attachListener);
selectors.put(ImageComponent.UPLOAD, upload);
add(upload);
@@ -110,20 +109,6 @@
return m_imageComponent.getComponentsMap().values().iterator();
}
- private ImageComponent getImageComponent(PageState ps) {
- if (!m_imageComponent.isSelected(ps)) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("No component selected");
- s_log.debug("Selected: " + m_imageComponent.getComponent(ps));
- }
-
- m_imageComponent.setSelectedKey(ps, ImageComponent.UPLOAD);
- }
-
- return (ImageComponent) m_imageComponent.getComponent(ps);
-
- }
-
private void setImageComponent(PageState ps, final String activeKey) {
m_imageComponent.setSelectedKey(ps, activeKey);
@@ -147,64 +132,34 @@
}
}
- public void init(FormSectionEvent event)
- throws FormProcessException {
- PageState ps = event.getPageState();
-
- ItemImageAttachment attachment = m_imageStep.getAttachment(ps);
- if (null == attachment) {
- // XXX: Do something
- }
- }
-
- public void process(FormSectionEvent event) throws FormProcessException {
- PageState ps = event.getPageState();
- ImageComponent component = getImageComponent(ps);
-
- if (!component.getSaveCancelSection().getSaveButton().isSelected(ps)) {
- return;
- }
-
- ContentItem item = m_imageStep.getItem(ps);
- if (null == item) {
- s_log.error("No item selected in ImageStepEdit",
- new RuntimeException());
- return;
- }
-
- ReusableImageAsset image = component.getImage(event);
-
- ItemImageAttachment attachment = m_imageStep.getAttachment(ps);
- if (null == attachment) {
- attachment = new ItemImageAttachment(item, image);
- }
- attachment.setCaption(component.getCaption(event));
-
- // We only set the description and title based on the UI in
- // the case where getIsImageStepDescriptionAndTitleShown is true.
- // Otherwise, we leave this as the default value. This means
- // existing values are not overwritten if the image is edited when
- // isImageStepDescriptionAndTitleShown is false.
- if (ItemImageAttachment.getConfig().getIsImageStepDescriptionAndTitleShown()) {
- attachment.setDescription(component.getDescription(event));
- attachment.setTitle(component.getTitle(event));
- }
- attachment.setUseContext(component.getUseContext(event));
- }
-
- public void reset(PageState state) {
- Page p = state.getPage();
-
+ // Reset this component and all of it's resettable childs
+ public void reset(PageState ps) {
Map componentsMap = m_imageComponent.getComponentsMap();
+ m_imageComponent.setSelectedKey(ps, ImageComponent.LIBRARY);
Iterator i = componentsMap.keySet().iterator();
while (i.hasNext()) {
Object key = i.next();
Component component = (Component) componentsMap.get(key);
- p.setVisibleDefault(component, ImageComponent.LIBRARY.equals(key));
+ ps.setVisible(component, ImageComponent.LIBRARY.equals(key));
+
+ // Reset all components if they are of type Resettable
+ if (component instanceof Resettable) {
+ ((Resettable) component).reset(ps);
+ }
}
}
+ // We only set the description and title based on the UI in
+ // the case where getIsImageStepDescriptionAndTitleShown is true.
+ // Otherwise, we leave this as the default value. This means
+ // existing values are not overwritten if the image is edited when
+ // isImageStepDescriptionAndTitleShown is false.
+// if (ItemImageAttachment.getConfig().getIsImageStepDescriptionAndTitleShown()) {
+// attachment.setDescription(component.getDescription(event));
+// attachment.setTitle(component.getTitle(event));
+// }
+// attachment.setUseContext(component.getUseContext(event));
private class UniqueUseContextListener implements ParameterListener {
public void validate(ParameterEvent ev)
|