From 069be900f6e4f18be40309418c0ff0c25ad1059e Mon Sep 17 00:00:00 2001 From: jensp Date: Tue, 1 Apr 2014 16:59:52 +0000 Subject: [PATCH] Serveral small bug fixes and cleanups. git-svn-id: https://svn.libreccm.org/ccm/trunk@2594 8810af33-2d31-482b-a856-94f89814c4df --- .../ui/ImageComponentAbstractListener.java | 197 +++++++------- .../com/arsdigita/cms/ui/ImageSelectPage.java | 245 +++++++++--------- .../cms/ui/ImageSelectResultComponent.java | 155 +++++------ .../user/includes/subsite/subsiteBanner.xsl | 13 + .../exporter/ris/WorkingPaperConverter.java | 2 +- doc/PDLEntities.puml | 1 + 6 files changed, 316 insertions(+), 297 deletions(-) diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java b/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java index 657757faa..bd61e0fa3 100644 --- a/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java @@ -20,135 +20,138 @@ import org.apache.log4j.Logger; /** * An abstract listener for {@link ImageComponent}. * - * This listener provides the base implementation which is shared between all - * listeners of this kind. + * This listener provides the base implementation which is shared between all listeners of this + * kind. * * This listerner is used by {@link ImageSelectPage}. * * @author Sören Bernstein */ public abstract class ImageComponentAbstractListener implements FormInitListener, - FormProcessListener, - FormSubmissionListener { + FormProcessListener, + FormSubmissionListener { - private static final Logger s_log = Logger.getLogger( - ImageComponentSelectListener.class); - MapComponentSelectionModel m_imageComponent; + private static final Logger s_log = Logger.getLogger( + ImageComponentSelectListener.class); + MapComponentSelectionModel m_imageComponent; - public ImageComponentAbstractListener(MapComponentSelectionModel imageComponent) { - super(); - m_imageComponent = imageComponent; - } + public ImageComponentAbstractListener(MapComponentSelectionModel imageComponent) { + super(); + m_imageComponent = imageComponent; + } - @Override - public void init(FormSectionEvent event) - throws FormProcessException { - PageState ps = event.getPageState(); - if (!m_imageComponent.isSelected(ps)) { - setImageComponent(ps, ImageComponent.LIBRARY); - } - } + @Override + public void init(FormSectionEvent event) + throws FormProcessException { + PageState ps = event.getPageState(); + if (!m_imageComponent.isSelected(ps)) { + setImageComponent(ps, ImageComponent.LIBRARY); + } + } - /** - * Call {@link #cancelled(com.arsdigita.bebop.PageState)} if the cancel - * button was pressed. - * - * @param event the {@link FormSectionEvent} - * @throws FormProcessException - */ - @Override - public void submitted(FormSectionEvent event) throws FormProcessException { - PageState ps = event.getPageState(); - ImageComponent component = getImageComponent(ps); + /** + * Call {@link #cancelled(com.arsdigita.bebop.PageState)} if the cancel button was pressed. + * + * @param event the {@link FormSectionEvent} + * + * @throws FormProcessException + */ + @Override + public void submitted(FormSectionEvent event) throws FormProcessException { + PageState ps = event.getPageState(); + ImageComponent component = getImageComponent(ps); - if (component.getSaveCancelSection().getCancelButton().isSelected(ps)) { - cancelled(ps); - } - } + if (component.getSaveCancelSection().getCancelButton().isSelected(ps)) { + cancelled(ps); + } + } - /** - * Call {@link #processImage(com.arsdigita.bebop.event.FormSectionEvent, - * com.arsdigita.bebop.PageState, com.arsdigita.cms.ui.ImageComponent, - * com.arsdigita.cms.ReusableImageAsset) } - * if the save button was pressed. - * - * @param event the {@link FormSectionEvent} - * @throws FormProcessException - */ - @Override - public void process(FormSectionEvent event) throws FormProcessException { - PageState ps = event.getPageState(); - ImageComponent component = getImageComponent(ps); + /** + * Call {@link #processImage(com.arsdigita.bebop.event.FormSectionEvent, + * com.arsdigita.bebop.PageState, com.arsdigita.cms.ui.ImageComponent, + * com.arsdigita.cms.ReusableImageAsset) } + * if the save button was pressed. + * + * @param event the {@link FormSectionEvent} + * + * @throws FormProcessException + */ + @Override + public void process(FormSectionEvent event) throws FormProcessException { + PageState ps = event.getPageState(); + ImageComponent component = getImageComponent(ps); - if (!component.getSaveCancelSection().getSaveButton().isSelected(ps)) { - return; - } + if (!component.getSaveCancelSection().getSaveButton().isSelected(ps)) { + return; + } // try { - ReusableImageAsset image = component.getImage(event); + ReusableImageAsset image = component.getImage(event); - processImage(event, ps, component, image); + processImage(event, ps, component, image); // } catch (FormProcessException ex) { // } - } + } - /** - * To be overridden by child if neccessary. - * - * @param ps - */ - protected void cancelled(PageState ps) { - } + /** + * To be overridden by child if neccessary. + * + * @param ps + */ + protected void cancelled(PageState ps) { + } /** * Process the input. - * - * @param event the {@link FormSectionEvent} - * @param ps {@link PageState} + * + * @param event the {@link FormSectionEvent} + * @param ps {@link PageState} * @param component an {@link ImageComponent} - * @param image the {@link ReusableImageAsset} + * @param image the {@link ReusableImageAsset} */ - protected abstract void processImage(FormSectionEvent event, PageState ps, ImageComponent component, ReusableImageAsset 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)); - } + 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); - } + m_imageComponent.setSelectedKey(ps, ImageComponent.UPLOAD); + } - return (ImageComponent) m_imageComponent.getComponent(ps); + return (ImageComponent) m_imageComponent.getComponent(ps); - } + } - /** - * Sets the active component - * - * @param ps Page state - * @param activeKey the key of the active component - */ - protected void setImageComponent(PageState ps, final String activeKey) { + /** + * Sets the active component + * + * @param ps Page state + * @param activeKey the key of the active component + */ + protected void setImageComponent(PageState ps, final String activeKey) { - if (s_log.isDebugEnabled()) { - s_log.debug("Selected component: " + 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); + 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); + boolean isVisible = activeKey.equals(key); - if (s_log.isDebugEnabled()) { - s_log.debug("Key: " + key + "; Visibility: " + isVisible); - } + if (s_log.isDebugEnabled()) { + s_log.debug("Key: " + key + "; Visibility: " + isVisible); + } + + ps.setVisible(component, isVisible); + } + } - ps.setVisible(component, isVisible); - } - } } diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java b/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java index 799336c07..ca61fe2e4 100644 --- a/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java @@ -24,151 +24,152 @@ import org.apache.log4j.Logger; /** * A {@link CMSPage} to select and upload images. * - * This page is used by - * /web/templates/ccm-cms/content-section/admin/image_select.jsp which is used + * This page is used by /web/templates/ccm-cms/content-section/admin/image_select.jsp which is used * by the OpenCCM plugin for Xinha editor. * * @author Sören Bernstein */ public class ImageSelectPage extends CMSPage { - private static final Logger S_LOG = Logger.getLogger(ImagesPane.class); - private final static String XSL_CLASS = "CMS Admin"; - private TabbedPane m_tabbedPane; - private LayoutPanel m_imageLibrary; - private ImageUploadComponent m_imageUpload; - private ImageSelectResultComponent m_result; - 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.getInstanceOf(); - public static final String CONTENT_SECTION = "section_id"; - public static final String RESULT = "result"; + private static final Logger S_LOG = Logger.getLogger(ImagesPane.class); + private final static String XSL_CLASS = "CMS Admin"; + private TabbedPane m_tabbedPane; + private LayoutPanel m_imageLibrary; + private ImageUploadComponent m_imageUpload; + private ImageSelectResultComponent m_result; + 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.getInstanceOf(); + public static final String CONTENT_SECTION = "section_id"; + public static final String RESULT = "result"; - public ImageSelectPage() { - super(GlobalizationUtil.globalize( - "cms.ui.image_select.page_title") - .localize().toString(), - new SimpleContainer()); + public ImageSelectPage() { + super(GlobalizationUtil.globalize( + "cms.ui.image_select.page_title") + .localize().toString(), + new SimpleContainer()); - setClassAttr("cms-admin"); + setClassAttr("cms-admin"); - m_sectionId = new BigDecimalParameter(CONTENT_SECTION); - addGlobalStateParam(m_sectionId); + m_sectionId = new BigDecimalParameter(CONTENT_SECTION); + addGlobalStateParam(m_sectionId); - m_imageComponentKey = new StringParameter("imageComponent"); + m_imageComponentKey = new StringParameter("imageComponent"); - ParameterSingleSelectionModel componentModel = - new ParameterSingleSelectionModel(m_imageComponentKey); - m_imageComponent = - new MapComponentSelectionModel(componentModel, new HashMap()); + ParameterSingleSelectionModel componentModel = new ParameterSingleSelectionModel( + m_imageComponentKey); + m_imageComponent = new MapComponentSelectionModel(componentModel, new HashMap()); - m_selectListener = new ImageComponentSelectListener(m_imageComponent, - getResultComponent()); + m_selectListener = new ImageComponentSelectListener(m_imageComponent, + getResultComponent()); - m_tabbedPane = createTabbedPane(); - m_tabbedPane.setIdAttr("page-body"); + 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() { - @Override - public void actionPerformed(ActionEvent event) { - final PageState ps = event.getPageState(); + add(m_tabbedPane); + // ActionListener to change the image component state param to the + // right value + addActionListener(new ActionListener() { + @Override + 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); - } - } - }); + 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); + } + } - add(m_result); + }); - addGlobalStateParam(m_imageComponentKey); - } + add(m_result); - /** - * Create the image library pane - * - * @return m_imageLibrary - */ - protected LayoutPanel getImageLibraryPane() { - if (m_imageLibrary == null) { - m_imageLibrary = new LayoutPanel(); - - ImageLibraryComponent libComp = new ImageLibraryComponent(ImageComponent.SELECT_IMAGE, - this); - libComp.getForm().addInitListener(m_selectListener); - libComp.getForm().addProcessListener(m_selectListener); - m_imageLibrary.setBody(libComp); - m_imageComponent.getComponentsMap().put(ImageComponent.LIBRARY, - m_imageLibrary); - } - return m_imageLibrary; - } + addGlobalStateParam(m_imageComponentKey); + } - /** - * Create the image upload pane - * - * @return m_imageUpload - */ - protected ImageUploadComponent getImageUploadPane() { + /** + * Create the image library pane + * + * @return m_imageLibrary + */ + protected LayoutPanel getImageLibraryPane() { + if (m_imageLibrary == null) { + m_imageLibrary = new LayoutPanel(); - if (m_imageUpload == null) { - m_imageUpload = new ImageUploadComponent(ImageComponent.SELECT_IMAGE); - m_imageUpload.getForm().addInitListener(m_selectListener); - m_imageUpload.getForm().addProcessListener(m_selectListener); - m_imageComponent.getComponentsMap().put(ImageComponent.UPLOAD, - m_imageUpload); - } - return m_imageUpload; - } + ImageLibraryComponent libComp = new ImageLibraryComponent(ImageComponent.SELECT_IMAGE, + this); + libComp.getForm().addInitListener(m_selectListener); + libComp.getForm().addProcessListener(m_selectListener); + m_imageLibrary.setBody(libComp); + m_imageComponent.getComponentsMap().put(ImageComponent.LIBRARY, +// m_imageLibrary); + libComp); + } + return m_imageLibrary; + } - /** - * Creates an {@link ImageSelectResultComponent} - * - * @return m_resultPane - */ - protected ImageSelectResultComponent getResultComponent() { - if (m_result == null) { - m_result = new ImageSelectResultComponent(); - } - return m_result; - } + /** + * Create the image upload pane + * + * @return m_imageUpload + */ + protected ImageUploadComponent getImageUploadPane() { - /** - * Create the tabbed pane - */ - protected TabbedPane createTabbedPane() { - TabbedPane pane = new TabbedPane(); - pane.setClassAttr(XSL_CLASS); + if (m_imageUpload == null) { + m_imageUpload = new ImageUploadComponent(ImageComponent.SELECT_IMAGE); + m_imageUpload.getForm().addInitListener(m_selectListener); + m_imageUpload.getForm().addProcessListener(m_selectListener); + m_imageComponent.getComponentsMap().put(ImageComponent.UPLOAD, + m_imageUpload); + } + return m_imageUpload; + } - addToPane(pane, ImageComponent.LIBRARY, getImageLibraryPane()); - addToPane(pane, ImageComponent.UPLOAD, getImageUploadPane()); - pane.setDefaultPane(m_imageLibrary); + /** + * Creates an {@link ImageSelectResultComponent} + * + * @return m_resultPane + */ + protected ImageSelectResultComponent getResultComponent() { + if (m_result == null) { + m_result = new ImageSelectResultComponent(); + } + return m_result; + } - return pane; - } + /** + * Create the tabbed pane + */ + protected TabbedPane createTabbedPane() { + TabbedPane pane = new TabbedPane(); + pane.setClassAttr(XSL_CLASS); + + addToPane(pane, ImageComponent.LIBRARY, getImageLibraryPane()); + addToPane(pane, ImageComponent.UPLOAD, getImageUploadPane()); + pane.setDefaultPane(m_imageLibrary); + + return pane; + } + + /** + * Adds the specified component, with the specified tab name, to the tabbed pane only if it is + * not null. + * + * @param pane The pane to which to add the tab + * @param tabName The name of the tab if it's added + * @param comp The component to add to the pane + */ + protected void addToPane(final TabbedPane pane, + final String tabName, + final Component comp) { + if (comp != null) { + pane.addTab(GlobalizationUtil.globalize("cms.ui.image_" + tabName) + .localize().toString(), comp); + } + } - /** - * Adds the specified component, with the specified tab name, to the - * tabbed pane only if it is not null. - * - * @param pane The pane to which to add the tab - * @param tabName The name of the tab if it's added - * @param comp The component to add to the pane - */ - protected void addToPane(final TabbedPane pane, - final String tabName, - final Component comp) { - if (comp != null) { - pane.addTab(GlobalizationUtil.globalize("cms.ui.image_" + tabName) - .localize().toString(), comp); - } - } } diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java b/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java index 4ae299a45..930d73684 100644 --- a/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java @@ -13,102 +13,103 @@ import com.arsdigita.web.URL; import com.arsdigita.xml.Element; /** - * A component which will insert a javascript to the xml output with the image - * information for the OpenCCM plugin for Xinha editor. + * A component which will insert a javascript to the xml output with the image information for the + * OpenCCM plugin for Xinha editor. * * @author Sören Bernstein */ public class ImageSelectResultComponent extends SimpleContainer - implements Resettable { + implements Resettable { - boolean m_valid = false; - ImageAsset m_image; - String m_lastImageComponent; + boolean m_valid = false; + ImageAsset m_image; + String m_lastImageComponent; - public ImageSelectResultComponent() { - super(); - } + public ImageSelectResultComponent() { + super(); + } - /** - * Save image imformation - * - * @param image an {@link ImageAsset} - */ - public void setResult(final ImageAsset image, final String lastComponent) { - m_image = image; - m_lastImageComponent = lastComponent; - m_valid = (m_image != null); - } + /** + * Save image imformation + * + * @param image an {@link ImageAsset} + */ + public void setResult(final ImageAsset image, final String lastComponent) { + m_image = image; + m_lastImageComponent = lastComponent; + m_valid = (m_image != null); + } - /** - * Insert a script tag to the xml output with a JavaScript function to - * send the image information back to the Xinha plugin. - * - * @param state The current {@link PageState} - * @param parent The parent {@link Element} - */ - @Override - public void generateXML(PageState state, Element parent) { + /** + * Insert a script tag to the xml output with a JavaScript function to send the image + * information back to the Xinha plugin. + * + * @param state The current {@link PageState} + * @param parent The parent {@link Element} + */ + @Override + public void generateXML(PageState state, Element parent) { - Element scriptElem = parent.newChildElement("script"); - scriptElem.addAttribute("type", "text/javascript"); + Element scriptElem = parent.newChildElement("script"); + scriptElem.addAttribute("type", "text/javascript"); - StringBuilder script = new StringBuilder(1000); + StringBuilder script = new StringBuilder(1000); - // Create function - script.append("function selectImage(button) {"); + // Create function + script.append("function selectImage(button) {"); - // If there is a valid image - if (m_valid) { + // If there is a valid image + if (m_valid) { - // If in library mode, only listen to save button - if (m_lastImageComponent.equals(ImageComponent.LIBRARY)) { - script.append("if(button.id != \"save\" ) { return false; } "); - } + // If in library mode, only listen to save button + if (m_lastImageComponent.equals(ImageComponent.LIBRARY)) { + script.append("if(button.id != \"save\" ) { return false; } "); + } - // Send image parameters to xinha plugin - script.append("window.opener.openCCM.imageSet({"); - script.append(" src : \""); - script.append(URL.getDispatcherPath()); - script.append(Service.getImageURL(m_image)); - script.append("\", "); - script.append(" name : \""); - script.append(m_image.getDisplayName()); - script.append("\", "); - script.append(" width : \""); - script.append(m_image.getWidth()); - script.append("\", "); - script.append(" height : \""); - script.append(m_image.getHeight()); - script.append("\""); - script.append("});"); + // Send image parameters to xinha plugin + script.append("window.opener.openCCM.imageSet({"); + script.append(" src : \""); + script.append(URL.getDispatcherPath()); + script.append(Service.getImageURL(m_image)); + script.append("\", "); + script.append(" name : \""); + script.append(m_image.getDisplayName()); + script.append("\", "); + script.append(" width : \""); + script.append(m_image.getWidth()); + script.append("\", "); + script.append(" height : \""); + script.append(m_image.getHeight()); + script.append("\""); + script.append("});"); - // Close window - script.append("self.close();"); + // Close window + script.append("self.close();"); - } - script.append("return false;"); - script.append("}"); + } + script.append("return false;"); + script.append("}"); // If in upload mode and if there is a valid image, execute the - // javascript function - if (m_valid && ImageComponent.UPLOAD.equals(m_lastImageComponent)) { - script.append("selectImage();"); - } + // javascript function + if (m_valid && ImageComponent.UPLOAD.equals(m_lastImageComponent)) { + script.append("selectImage();"); + } - scriptElem.setText(script.toString()); + scriptElem.setText(script.toString()); - // Reset ImageSelectResultComponent - reset(state); - } + // Reset ImageSelectResultComponent + reset(state); + } + + /** + * Reset this component. + * + * @param state Page state + */ + @Override + public void reset(PageState state) { + setResult(null, null); + } - /** - * Reset this component. - * - * @param state Page state - */ - @Override - public void reset(PageState state) { - setResult(null, null); - } } diff --git a/ccm-sci-bundle/web/themes/mandalay/user/includes/subsite/subsiteBanner.xsl b/ccm-sci-bundle/web/themes/mandalay/user/includes/subsite/subsiteBanner.xsl index 681d8f442..46fc0ec1e 100644 --- a/ccm-sci-bundle/web/themes/mandalay/user/includes/subsite/subsiteBanner.xsl +++ b/ccm-sci-bundle/web/themes/mandalay/user/includes/subsite/subsiteBanner.xsl @@ -22,6 +22,18 @@ + + + + + + + + + @@ -30,6 +42,7 @@ + diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/ris/WorkingPaperConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/ris/WorkingPaperConverter.java index c89229302..bd9acd64b 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/ris/WorkingPaperConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/ris/WorkingPaperConverter.java @@ -50,7 +50,7 @@ public class WorkingPaperConverter extends AbstractRisConverter { workingPaper = (WorkingPaper) publication; - getRisBuilder().setType(RisType.UNPD); + getRisBuilder().setType(RisType.UNPB); convertAuthors(publication); convertTitle(publication); diff --git a/doc/PDLEntities.puml b/doc/PDLEntities.puml index 2e2d90a63..80a34cad8 100644 --- a/doc/PDLEntities.puml +++ b/doc/PDLEntities.puml @@ -153,6 +153,7 @@ namespace com.arsdigita.cms { ContentItem <|-- Folder ImageAsset <|-- ReusableImageAsset MimeType <|-- ImageMimeType + MimeType <|-- TextMimeType TextAsset <|-- Template Asset -- MimeType