From: <pb...@fe...> - 2013-02-02 13:51:49
|
Author: pboy Date: 2013-02-02 13:51:41 +0000 (Sat, 02 Feb 2013) New Revision: 2459 Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java Log: Improved new image tab: fixed event handling, fixed upload of imnages. (On behalf of Quasimodo) Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2013-02-02 13:50:29 UTC (rev 2458) +++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2013-02-02 13:51:41 UTC (rev 2459) @@ -1111,3 +1111,4 @@ cms.ui.clear=Clear cms.ui.item_search.create.folder_missing=No folder selected +cms.ui.images_links= Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2013-02-02 13:50:29 UTC (rev 2458) +++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2013-02-02 13:51:41 UTC (rev 2459) @@ -1104,3 +1104,4 @@ cms.ui.type.minimum_number_of_values_bigger_than_maximum_number_of_values=Maximaler Wert kleiner als minimaler Wert cms.ui.type.minimummaximum_number_of_values_cannot_be_negative=Keine negativen Werte erlaubt cms.ui.item_search.create.folder_missing=kein Ordner ausgew\u00e4hlt +cms.ui.images_links= Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties 2013-02-02 13:50:29 UTC (rev 2458) +++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties 2013-02-02 13:51:41 UTC (rev 2459) @@ -50,3 +50,4 @@ cms.ui.clear= cms.ui.item_search.create.folder_missing= +cms.ui.images_links= Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties 2013-02-02 13:50:29 UTC (rev 2458) +++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties 2013-02-02 13:51:41 UTC (rev 2459) @@ -67,7 +67,7 @@ cms.contenttypes.ui.there_are_no_events=Il n'y a aucun \u00e9venement cms.contenttypes.ui.title=Titre cms.contenttypes.ui.view_image=voir l'image - + # Package com.arsdigita.cms.dispatcher # ===================================== cms.dispatcher.cannot_find_domain_object=Impossible de trouver le domaine objet @@ -77,7 +77,7 @@ cms.dispatcher.not_implemented=Non impl\u00e9ment\u00e9 cms.dispatcher.unknown_context=Contexte inconnu - + # Package com.arsdigita.cms.formbuilder # ===================================== cms.formbuilder.cannot_create_acsobject=Impossible de cr\u00e9er l'ACSObject @@ -86,13 +86,13 @@ cms.formbuilder.roll_me_back=TRANSLATE THIS: Roll me back (cms.formbuilder.roll_me_back) cms.formbuilder.css=Cascading Style Sheet (CSS) Class Attribute - + # Package com.arsdigita.cms.installer # ===================================== cms.installer.approval=Approbation cms.installer.article=Article cms.installer.authoring=Ecriture -cms.installer.cannot_find_cms_package_type=Impossible de trouver le type package CMS +cms.installer.cannot_find_cms_package_type=Impossible de trouver le type package CMS cms.installer.cannot_find_content_type=Impossible de trouver le type de contenu cms.installer.cannot_find_file=Impossible de trouver le fichier cms.installer.cannot_find_group_for_email=Impossible de trouver le groupe pour l'email @@ -109,7 +109,7 @@ cms.installer.simple_publication=Publication simple cms.installer.template=Gabarit - + # Package com.arsdigita.cms.lifecycle # =================================== cms.lifecycle.could_not_fetch_lifecycle=Impossible de trouver le cycle de vie @@ -135,10 +135,10 @@ cms.publishToFile.publish_to_file_setlocalrequestpassword_could_not_be_created=La publication du fichier pour la demande de mot de passe ne peut pas \u00eatre cr\u00e9\u00e9e cms.publishToFile.publishsource_sourcebase_must_end_in_=L'\u00e9dition source doit se terminer par '/' cms.publishToFile.server=Server -cms.publishToFile.unable_to_find_closing_for_tag=Impossible de trouver '>' pour la fermeture du tag +cms.publishToFile.unable_to_find_closing_for_tag=Impossible de trouver '>' pour la fermeture du tag cms.publishToFile.unable_to_get_contentitem=Impossible de trouve le contenu de l'\u00e9l\u00e9ment - + # Package com.arsdigita.cms.ui # ============================ cms.ui.actions=actions @@ -196,7 +196,7 @@ cms.ui.no_items_matched_the_search=Pas d'\u00e9l\u00e9ment trouv\u00e9 dans la recherche - + # Package com.arsdigita.cms.ui.authoring # ====================================== cms.ui.authoring.an_item_with_this_name_already_exists=Un \u00e9l\u00e9ment de ce nom existe d\u00e9j\u00e0 @@ -236,12 +236,12 @@ cms.ui.authoring.upload_image=T\u00e9l\u00e9charger l'image cms.ui.authoring.workflow=TRANSLATE THIS: Select a Workflow (cms.ui.authoring.workflow) - + # Package com.arsdigita.cms.ui.authoringkit # ========================================= cms.ui.authoringkit.authoring_kit_for=Kit d'\u00e9criture pour cms.ui.authoringkit.component=Composant -cms.ui.authoringkit.content_type_id=Type de contenu ID# +cms.ui.authoringkit.content_type_id=Type de contenu ID# cms.ui.authoringkit.create_component=Cr\u00e9er le composant cms.ui.authoringkit.createcomponent=Cr\u00e9er le composant cms.ui.authoringkit.current_row_does_not_exists=La ligne en cours n'exsite pas @@ -251,7 +251,7 @@ cms.ui.authoringkit.ordering=Commande cms.ui.authoringkit.submission_cancelled=Soumission annul\u00e9e - + # Package com.arsdigita.cms.ui.category # ===================================== cms.ui.category.add_a_subcategory=Ajouter une sous-rubrique @@ -294,7 +294,7 @@ cms.ui.category.url=URL # cms.ui.category.use_custom_permissions=Utiliser les droits personnalis\u00e9s - + # Package com.arsdigita.cms.ui.cse # ================================ cms.ui.cse.authorName=Author @@ -305,17 +305,17 @@ cms.ui.cse.editLink=edit cms.ui.cse.endDateTime=Live Until - + # Package com.arsdigita.cms.ui.folder # =================================== cms.ui.folder.cancelled=Annul\u00e9 cms.ui.folder.cannot_find_a_root_folder=Impossible de trouver le r\u00e9pertoire racine -cms.ui.folder.na=N/A +cms.ui.folder.na=N/A cms.ui.folder.no_source_items_specified=Pas d'\u00e9l\u00e9ment source sp\u00e9cifi\u00e9 cms.ui.folder.parent=Parent Folder cms.ui.folder.rename=Rename folder - + # Package com.arsdigita.cms.ui.formbuilder # ======================================== cms.ui.formbuilder.description=Description @@ -323,7 +323,7 @@ cms.ui.formbuilder.oh_no_you_dont=non, vous ne pouvez pas cms.ui.formbuilder.title=Titre - + # Package com.arsdigita.cms.ui.item # ================================= cms.ui.item.access_denied=Acc\u00e8s refus\u00e9 @@ -345,7 +345,7 @@ cms.ui.item.the_current_row_does_not_exists=La ligne en cours n'exsite pas cms.ui.item.unpublish=D\u00e9publier - + # Package com.arsdigita.cms.ui.lifecycle # ====================================== cms.ui.lifecycle.add=Create new lifecycle @@ -372,7 +372,7 @@ cms.ui.lifecycle.phases=Etapes cms.ui.lifecycle.start_delay=D\u00e9lai de d\u00e9but - + # Package com.arsdigita.cms.ui.permissions # ======================================== cms.ui.permissions.add_administrator=Ajouter un administrateur @@ -421,7 +421,7 @@ cms.ui.staff.no_usersgroups_were_selected=Pas d'utilisateur/groupe s\u00e9l\u00e9ctionn\u00e9 cms.ui.staff.not_a_role_adminstrator=Pas d'administrateur de r\u00f4le cms.ui.staff.not_an_administrator_for_roles=pas un administrateur pour les r\u00f4les -cms.ui.staff.not_an_administrator_for_this_role=pas un administrateur pour ce r\u00f4le +cms.ui.staff.not_an_administrator_for_this_role=pas un administrateur pour ce r\u00f4le cms.ui.staff.out_of_bounds=En dehors de la plage cms.ui.staff.privileges=Droits accord\u00e9s cms.ui.staff.privileges=Droits accord\u00e9s @@ -581,3 +581,4 @@ cms.ui.clear= cms.ui.item_search.create.folder_missing= +cms.ui.images_links= Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java 2013-02-02 13:50:29 UTC (rev 2458) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java 2013-02-02 13:51:41 UTC (rev 2459) @@ -24,12 +24,10 @@ import com.arsdigita.cms.ImageAsset; import com.arsdigita.cms.ItemSelectionModel; import com.arsdigita.cms.Service; -// import com.arsdigita.cms.dispatcher.Utilities; import com.arsdigita.mimetypes.MimeType; import com.arsdigita.util.Assert; import com.arsdigita.web.URL; import com.arsdigita.xml.Element; - import java.math.BigDecimal; Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2013-02-02 13:50:29 UTC (rev 2458) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2013-02-02 13:51:41 UTC (rev 2459) @@ -5,6 +5,7 @@ package com.arsdigita.cms.ui; import com.arsdigita.bebop.Component; +import com.arsdigita.bebop.FormModel; import com.arsdigita.bebop.Label; import com.arsdigita.bebop.List; import com.arsdigita.bebop.ListPanel; @@ -16,16 +17,17 @@ import com.arsdigita.bebop.SegmentedPanel; import com.arsdigita.bebop.SegmentedPanel.Segment; import com.arsdigita.bebop.SimpleContainer; -import com.arsdigita.bebop.SingleSelectionModel; import com.arsdigita.bebop.event.ChangeEvent; import com.arsdigita.bebop.event.ChangeListener; import com.arsdigita.bebop.list.ListModel; import com.arsdigita.bebop.list.ListModelBuilder; +import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.bebop.parameters.StringParameter; import com.arsdigita.cms.util.GlobalizationUtil; import com.arsdigita.toolbox.ui.ActionGroup; import com.arsdigita.toolbox.ui.LayoutPanel; import com.arsdigita.toolbox.ui.Section; +import com.arsdigita.util.Assert; import com.arsdigita.util.LockableImpl; import java.util.ArrayList; import java.util.HashMap; @@ -47,14 +49,15 @@ private ListPanel m_listPanel; final private SegmentedPanel m_body; private HashMap<String, Segment> m_bodySegments = new HashMap(); - private final SingleSelectionModel m_model; + private final ResettableParameterSingleSelectionModel m_model; private final List m_links; + private final LinksSection m_modes; public ImagesPane() { super(); - m_model = new ParameterSingleSelectionModel(new StringParameter(List.SELECTED)); - + m_model = new ResettableParameterSingleSelectionModel(new StringParameter(List.SELECTED)); + m_model.setDefaultSelection(ImageComponent.LIBRARY); m_model.addChangeListener(new ImageAdminSelectionListener()); m_links = new List(new ImageAdminListModelBuilder()); @@ -63,8 +66,8 @@ final SimpleContainer left = new SimpleContainer(); setLeft(left); - final LinksSection staff = new LinksSection(); - left.add(staff); + m_modes = new LinksSection(); + left.add(m_modes); m_body = new SegmentedPanel(); setBody(m_body); @@ -81,7 +84,6 @@ final ImageLibraryComponent library = new ImageLibraryComponent(ImageComponent.ADMIN_IMAGES); library.getForm().addInitListener(m_adminListener); library.getForm().addProcessListener(m_adminListener); - library.addUploadLink(m_adminListener); selectors.put(ImageComponent.LIBRARY, library); m_bodySegments.put(ImageComponent.LIBRARY, m_body.addSegment( new Label(GlobalizationUtil.globalize("cms.ui.image_library")), @@ -107,69 +109,77 @@ while (keys.hasNext()) { String key = keys.next(); - page.setVisibleDefault(m_bodySegments.get(key), ImageComponent.LIBRARY.equals(key)); -// for (int index = 0; index < m_bodySegments.get(key).size(); index++) { - -// Component component = m_bodySegments.get(key).get(index); -// page.setVisibleDefault(component, ImageComponent.LIBRARY.equals(key)); -// } + page.setVisibleDefault(m_bodySegments.get(key), m_model.getDefaultSelection().equals(key)); } - // final Map componentsMap = m_imageComponent.getComponentsMap(); - // - // final Iterator keyIter = componentsMap.keySet().iterator(); - // while (keyIter.hasNext()) { - // final Object key = keyIter.next(); - // final Component component = (Component) componentsMap.get(key); - // - // page.setVisibleDefault(component, ImageComponent.LIBRARY.equals(key)); - // } - // page.addComponentStateParam(this, m_imageComponentKey); } /** * Resets this pane and all its resettable components. - * + * * @param state Page state */ @Override public final void reset(final PageState state) { super.reset(state); + m_model.reset(state); + this.setActiveImageComponent(state, m_model.getDefaultSelection()); + } + + public final void setActiveImageComponent(PageState state, String activeComp) { + Iterator<String> keys = m_bodySegments.keySet().iterator(); + m_imageComponent.setSelectedKey(state, activeComp); while (keys.hasNext()) { + String key = keys.next(); - state.setVisible(m_bodySegments.get(key), ImageComponent.LIBRARY.equals(key)); + final boolean visibility = key.equals(activeComp); + state.setVisible(m_bodySegments.get(key), visibility); for (int index = 0; index < m_bodySegments.get(key).size(); index++) { Component component = m_bodySegments.get(key).get(index); -// state.setVisible(component, ImageComponent.LIBRARY.equals(key)); + // Reset all components if they are of type Resettable - if (component instanceof Resettable) { ((Resettable) component).reset(state); } + + // Set visibility + component.setVisible(state, visibility); } } + } + private class ResettableParameterSingleSelectionModel extends ParameterSingleSelectionModel + implements Resettable { -// final Map componentsMap = m_imageComponent.getComponentsMap(); -// m_imageComponent.setSelectedKey(state, ImageComponent.LIBRARY); -// final Iterator keyIter = componentsMap.keySet().iterator(); -// while (keyIter.hasNext()) { -// final Object key = keyIter.next(); -// final Component component = (Component) componentsMap.get(key); -// -// state.setVisible(component, ImageComponent.LIBRARY.equals(key)); -// -// // Reset all components if they are of type Resettable -// if (component instanceof Resettable) { -// ((Resettable) component).reset(state); -// } -// } + private String defaultKey; + + public ResettableParameterSingleSelectionModel(ParameterModel m) { + super(m); + } + + public void setDefaultSelection(String selKey) { + this.defaultKey = selKey; + } + + public String getDefaultSelection() { + return defaultKey; + } + + public void reset(PageState state) { + + if (Assert.isEnabled()) { + final FormModel model = state.getPage().getStateModel(); + Assert.isTrue(model.containsFormParam(getStateParameter())); + } + + state.setValue(getStateParameter(), this.defaultKey); + } } private class ImageAdminListModel implements ListModel { @@ -212,13 +222,13 @@ final PageState state = e.getPageState(); -// getBody().reset(state); +// ImagesPane.this.reset(state); if (m_model.isSelected(state)) { S_LOG.debug("The selection model is selected; displaying " + "the item pane"); -// getBody().push(state, getItemPane()); + ImagesPane.this.setActiveImageComponent(state, state.getControlEventValue()); } } } @@ -234,4 +244,4 @@ group.setSubject(m_links); } } -} +} \ No newline at end of file |