diff --git a/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java b/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java index 814666ce8..7294d4c6c 100755 --- a/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java +++ b/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java @@ -15,7 +15,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - package com.arsdigita.cms.contentassets.ui; import com.arsdigita.bebop.AbstractSingleSelectionModel; @@ -49,14 +48,11 @@ import org.apache.log4j.Logger; public class ImageStep extends SecurityPropertyEditor { private static final Logger s_log = Logger.getLogger(ImageStep.class); - private final ItemSelectionModel m_itemSelection; private final AttachmentSelectionModel m_attachmentSelection; private final AuthoringKitWizard m_parent; - private final ImageStepDisplay m_display; private final ImageStepEdit m_add; - private final OIDParameter m_attachmentOID; /** @@ -65,37 +61,37 @@ public class ImageStep extends SecurityPropertyEditor { * @param itemModel * @param parent */ - public ImageStep( ItemSelectionModel itemModel, - AuthoringKitWizard parent ) { + public ImageStep(ItemSelectionModel itemModel, + AuthoringKitWizard parent) { super(); m_itemSelection = itemModel; m_parent = parent; - m_attachmentOID = new OIDParameter( "attachmentID" ); + m_attachmentOID = new OIDParameter("attachmentID"); m_attachmentSelection = new AttachmentSelectionModel(); /* Create ImageEditStep to add images to the current item */ - m_add = new ImageStepEdit( this ); + m_add = new ImageStepEdit(this); WorkflowLockedComponentAccess addCA = - new WorkflowLockedComponentAccess( m_add, m_itemSelection ); - addComponent( "add", - ImageStepGlobalizationUtil.globalize( - "cms.contentassets.ui.image_step.add_image"), - addCA ); + new WorkflowLockedComponentAccess(m_add, m_itemSelection); + addComponent("add", + ImageStepGlobalizationUtil.globalize( + "cms.contentassets.ui.image_step.add_image"), + addCA); /* ImageDisplayStep to display all already attached images */ - m_display = new ImageStepDisplay( this ); // Component to display + m_display = new ImageStepDisplay(this); // Component to display setDisplayComponent(m_display); // all attached images. Iterator imageComponents = m_add.getImageComponents(); - while( imageComponents.hasNext() ) { + while (imageComponents.hasNext()) { ImageComponent component = - (ImageComponent) imageComponents.next(); + (ImageComponent) imageComponents.next(); - addListeners( component.getForm(), - component.getSaveCancelSection().getCancelButton() ); + addListeners(component.getForm(), + component.getSaveCancelSection().getCancelButton()); } m_parent.getList().addActionListener(new ActionListener() { @@ -103,14 +99,15 @@ public class ImageStep extends SecurityPropertyEditor { PageState state = event.getPageState(); showDisplayPane(state); } + }); } @Override - public void register( Page p ) { - super.register( p ); + public void register(Page p) { + super.register(p); - p.addComponentStateParam( this, m_attachmentOID ); + p.addComponentStateParam(this, m_attachmentOID); } /** @@ -130,60 +127,61 @@ public class ImageStep extends SecurityPropertyEditor { /** * @return The currently selected item, null if there isn't one. */ - public ContentItem getItem( PageState ps ) { - return m_itemSelection.getSelectedItem( ps ); + public ContentItem getItem(PageState ps) { + return m_itemSelection.getSelectedItem(ps); } /** * @return The currently selected item, null if there isn't one. */ - public ItemImageAttachment getAttachment( PageState ps ) { - return (ItemImageAttachment) - m_attachmentSelection.getSelectedAttachment( ps ); + public ItemImageAttachment getAttachment(PageState ps) { + return (ItemImageAttachment) m_attachmentSelection.getSelectedAttachment(ps); } private class AttachmentSelectionModel - extends AbstractSingleSelectionModel - { + extends AbstractSingleSelectionModel { + private final RequestLocal m_attachment = new RequestLocal() { @Override - protected Object initialValue( PageState ps ) { - OID oid = (OID) getSelectedKey( ps ); - if( null == oid ) { + protected Object initialValue(PageState ps) { + OID oid = (OID) getSelectedKey(ps); + if (null == oid) { return null; } - return DomainObjectFactory.newInstance( oid ); + return DomainObjectFactory.newInstance(oid); } + }; - public Object getSelectedKey( PageState ps ) { - OID oid = (OID) ps.getValue( m_attachmentOID ); - if( null == oid ) { + public Object getSelectedKey(PageState ps) { + OID oid = (OID) ps.getValue(m_attachmentOID); + if (null == oid) { return null; } return oid; } - public void setSelectedKey( PageState ps, Object oid ) { - m_attachment.set( ps, null ); - ps.setValue( m_attachmentOID, oid ); + public void setSelectedKey(PageState ps, Object oid) { + m_attachment.set(ps, null); + ps.setValue(m_attachmentOID, oid); } - public ItemImageAttachment getSelectedAttachment( PageState ps ) { - return (ItemImageAttachment) m_attachment.get( ps ); + public ItemImageAttachment getSelectedAttachment(PageState ps) { + return (ItemImageAttachment) m_attachment.get(ps); } - public void setSelectedAttachment( PageState ps, - ItemImageAttachment attachment ) { - setSelectedKey( ps, attachment ); - m_attachment.set( ps, attachment ); + public void setSelectedAttachment(PageState ps, + ItemImageAttachment attachment) { + setSelectedKey(ps, attachment); + m_attachment.set(ps, attachment); } public ParameterModel getStateParameter() { return m_attachmentOID; } + } /** @@ -198,4 +196,5 @@ public class ImageStep extends SecurityPropertyEditor { super.showDisplayPane(state); m_add.reset(state); } + } diff --git a/ccm-sci-publications-librarysignatures/application.xml b/ccm-sci-publications-librarysignatures/application.xml new file mode 100644 index 000000000..36306c878 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/application.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + An asset for library signatures of publications + + + \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5-pdl.jar b/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5-pdl.jar new file mode 100644 index 000000000..48333f8d7 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5-pdl.jar differ diff --git a/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5-sql.jar b/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5-sql.jar new file mode 100644 index 000000000..eb9c9ffd3 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5-sql.jar differ diff --git a/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5.jar b/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5.jar new file mode 100644 index 000000000..fcb95e24e Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/ccm-sci-publications-librarysignatures-6.6.5.jar differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/LibrarySignatures.xml b/ccm-sci-publications-librarysignatures/build/classes/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/LibrarySignatures.xml new file mode 100644 index 000000000..089f8d87c --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/classes/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/LibrarySignatures.xml @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publiations-librarysignatures.config b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publiations-librarysignatures.config new file mode 100644 index 000000000..d9587fee9 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publiations-librarysignatures.config @@ -0,0 +1,4 @@ + + +//Nothing yet + \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.load b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.load new file mode 100644 index 000000000..382a7c85e --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.load @@ -0,0 +1,21 @@ + + + +
+
+
+ + + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.pdl.mf b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.pdl.mf new file mode 100644 index 000000000..a4e18a0c7 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.pdl.mf @@ -0,0 +1 @@ +com/arsdigita/cms/contentassets/SciPublicationsLibrarySignatures.pdl \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.web.mf b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.web.mf new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/classes/ccm-sci-publications-librarysignatures.web.mf @@ -0,0 +1 @@ + diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignature.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignature.class new file mode 100644 index 000000000..d8ca1c8ba Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignature.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesInitializer.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesInitializer.class new file mode 100644 index 000000000..860ff8aa3 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesInitializer.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesLoader.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesLoader.class new file mode 100644 index 000000000..be8ae7c44 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesLoader.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesResources.properties b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesResources.properties new file mode 100644 index 000000000..b190dbb96 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesResources.properties @@ -0,0 +1,18 @@ +# To change this template, choose Tools | Templates +# and open the template in the editor. + +com.arsdigita.cms.contentassets.librarysignatures.label=Library signatures +com.arsdigita.cms.contentassets.LibrarySignaturesResources=Library signatures of the publication +scipublications.librarysignatures.none=No library signatures yet +scipublications.librarysignatures.columns.library=Library +scipublications.librarysignatures.columns.signature=Signature +scipublications.librarysignatures.columns.library_link=Link +scipublications.librarysignatures.columns.edit=Edit +scipublications.librarysignatures.columns.delete=Delete +scipublications.librarysignatures.edit=Edit +scipublications.librarysignatures.delete=Delete +scipublications.librarysignatures.add=Add library signature +scipublications.librarysignatures.form.library=Library +scipublications.librarysignatures.form.signature=Signature +scipublications.librarysignatures.form.link=Link to the library catalog +scipublications.librarysignatures.delete.confirm=Are you sure to delete this signature diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesResources_de.properties b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesResources_de.properties new file mode 100644 index 000000000..37a8f5004 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/LibrarySignaturesResources_de.properties @@ -0,0 +1,18 @@ +# To change this template, choose Tools | Templates +# and open the template in the editor. + +com.arsdigita.cms.contentassets.librarysignatures.label=Bibliothekssignaturen +com.arsdigita.cms.contentassets.LibrarySignaturesResources=Bibliothekssignaturen der Publikation +scipublications.librarysignatures.none=Noch keine Bibliothekssignaturen vorhanden +scipublications.librarysignatures.columns.library=Bibliothek +scipublications.librarysignatures.columns.signature=Signatur +scipublications.librarysignatures.columns.library_link=Link +scipublications.librarysignatures.columns.edit=Bearbeiten +scipublications.librarysignatures.columns.delete=L\u00f6schen +scipublications.librarysignatures.edit=Bearbeiten +scipublications.librarysignatures.delete=L\u00f6schen +scipublications.librarysignatures.add=Bibliothekssignatur hinzuf\u00fcgen +scipublications.librarysignatures.form.library=Bibliothek +scipublications.librarysignatures.form.signature=Signatur +scipublications.librarysignatures.form.link=Link zum Bibliothekskatalog +scipublications.librarysignatures.delete.confirm=Sind Sie sicher, dass Sie diese Bibliothekssignatur entfernen wollen? diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesAddForm.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesAddForm.class new file mode 100644 index 000000000..62dd53328 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesAddForm.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesGlobalizationUtil.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesGlobalizationUtil.class new file mode 100644 index 000000000..6602f9dcc Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesGlobalizationUtil.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesStep.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesStep.class new file mode 100644 index 000000000..b37ab2202 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesStep.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$ActionListener.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$ActionListener.class new file mode 100644 index 000000000..884db4d45 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$ActionListener.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$DeleteCellRenderer.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$DeleteCellRenderer.class new file mode 100644 index 000000000..72c761fc2 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$DeleteCellRenderer.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$EditCellRenderer.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$EditCellRenderer.class new file mode 100644 index 000000000..91515b68d Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$EditCellRenderer.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$Model.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$Model.class new file mode 100644 index 000000000..0e44e1875 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$Model.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$ModelBuilder.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$ModelBuilder.class new file mode 100644 index 000000000..9f489755c Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable$ModelBuilder.class differ diff --git a/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable.class b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable.class new file mode 100644 index 000000000..211636d14 Binary files /dev/null and b/ccm-sci-publications-librarysignatures/build/classes/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable.class differ diff --git a/ccm-sci-publications-librarysignatures/build/sql/.ddl-timestamp b/ccm-sci-publications-librarysignatures/build/sql/.ddl-timestamp new file mode 100644 index 000000000..837e1cf71 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/.ddl-timestamp @@ -0,0 +1 @@ +ddl-timestamp \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/create.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/create.sql new file mode 100644 index 000000000..f1a43b94d --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/create.sql @@ -0,0 +1 @@ +@ ddl/oracle-se/table-ca_publications_librarysignatures-auto.sql diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/deferred.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/deferred.sql new file mode 100644 index 000000000..3a5a54580 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/deferred.sql @@ -0,0 +1,6 @@ +alter table ca_publications_librarysignatures add + constraint ca_pub_librarys_pub_id_f_be8sv foreign key (publication_id) + references ct_publications(publication_id); +alter table ca_publications_librarysignatures add + constraint ca_pub_librarys_sig_id_f_gk1cu foreign key (signature_id) + references acs_objects(object_id); diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/drop-constraints.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/drop-constraints.sql new file mode 100644 index 000000000..de30f0da7 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/drop-constraints.sql @@ -0,0 +1,4 @@ +alter table ca_publications_librarysignatures + drop constraint ca_pub_librarys_pub_id_f_be8sv; +alter table ca_publications_librarysignatures + drop constraint ca_pub_librarys_sig_id_f_gk1cu; diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/drop-tables.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/drop-tables.sql new file mode 100644 index 000000000..94bd2e98e --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/drop-tables.sql @@ -0,0 +1 @@ +drop table ca_publications_librarysignatures; diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/table-ca_publications_librarysignatures-auto.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/table-ca_publications_librarysignatures-auto.sql new file mode 100644 index 000000000..ce0353d7e --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/oracle-se/table-ca_publications_librarysignatures-auto.sql @@ -0,0 +1,11 @@ +create table ca_publications_librarysignatures ( + signature_id INTEGER not null + constraint ca_pub_librarys_sig_id_p_7qh_1 + primary key, + -- referential constraint for signature_id deferred due to circular dependencies + library VARCHAR(512) not null, + signature VARCHAR(512) not null, + librarylink VARCHAR(2048), + publication_id INTEGER not null + -- referential constraint for publication_id deferred due to circular dependencies +); diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/create.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/create.sql new file mode 100644 index 000000000..aa322d19e --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/create.sql @@ -0,0 +1 @@ +\i ddl/postgres/table-ca_publications_librarysignatures-auto.sql diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/deferred.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/deferred.sql new file mode 100644 index 000000000..3a5a54580 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/deferred.sql @@ -0,0 +1,6 @@ +alter table ca_publications_librarysignatures add + constraint ca_pub_librarys_pub_id_f_be8sv foreign key (publication_id) + references ct_publications(publication_id); +alter table ca_publications_librarysignatures add + constraint ca_pub_librarys_sig_id_f_gk1cu foreign key (signature_id) + references acs_objects(object_id); diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/drop-constraints.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/drop-constraints.sql new file mode 100644 index 000000000..bdbec28ca --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/drop-constraints.sql @@ -0,0 +1,4 @@ +alter table ca_publications_librarysignatures + drop constraint ca_pub_librarys_pub_id_f_be8sv RESTRICT; +alter table ca_publications_librarysignatures + drop constraint ca_pub_librarys_sig_id_f_gk1cu RESTRICT; diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/drop-tables.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/drop-tables.sql new file mode 100644 index 000000000..94bd2e98e --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/drop-tables.sql @@ -0,0 +1 @@ +drop table ca_publications_librarysignatures; diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/table-ca_publications_librarysignatures-auto.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/table-ca_publications_librarysignatures-auto.sql new file mode 100644 index 000000000..ce0353d7e --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/ddl/postgres/table-ca_publications_librarysignatures-auto.sql @@ -0,0 +1,11 @@ +create table ca_publications_librarysignatures ( + signature_id INTEGER not null + constraint ca_pub_librarys_sig_id_p_7qh_1 + primary key, + -- referential constraint for signature_id deferred due to circular dependencies + library VARCHAR(512) not null, + signature VARCHAR(512) not null, + librarylink VARCHAR(2048), + publication_id INTEGER not null + -- referential constraint for publication_id deferred due to circular dependencies +); diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/orace-se-create.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/orace-se-create.sql new file mode 100644 index 000000000..8cb4d2774 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/orace-se-create.sql @@ -0,0 +1,2 @@ +@@ ddl/oracle-se/create.sql +@@ ddl/oracle-se/deferred.sql \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/postgres-create.sql b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/postgres-create.sql new file mode 100644 index 000000000..ffc15342b --- /dev/null +++ b/ccm-sci-publications-librarysignatures/build/sql/ccm-sci-publications-librarysignatures/postgres-create.sql @@ -0,0 +1,4 @@ +begin; +\i ddl/postgres/create.sql +\i ddl/postgres/deferred.sql +commit; \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/pdl/com/arsdigita/cms/contentassets/SciPublicationsLibrarySignatures.pdl b/ccm-sci-publications-librarysignatures/pdl/com/arsdigita/cms/contentassets/SciPublicationsLibrarySignatures.pdl new file mode 100644 index 000000000..f08db5f23 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/pdl/com/arsdigita/cms/contentassets/SciPublicationsLibrarySignatures.pdl @@ -0,0 +1,43 @@ +// +// Copyright (C) 2013 Jens Pelzetter +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of +// the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// + +model com.arsdigita.cms.contentassets; + +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.kernel.ACSObject; + +object type LibrarySignature extends ACSObject { + + String[1..1] library = ca_publications_librarysignatures.library VARCHAR(512); + String[1..1] signature = ca_publications_librarysignatures.signature VARCHAR(512); + + String[0..1] librarylink = ca_publications_librarysignatures.librarylink VARCHAR(2048); + + reference key(ca_publications_librarysignatures.signature_id); +} + +association { + + composite Publication[1..1] publication = join ca_publications_librarysignatures.publication_id + to ct_publications.publication_id; + + component LibrarySignature[0..n] librarysignatures = join ct_publications.publication_id + to ca_publications_librarysignatures.publication_id; + +} \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/sql/ccm-sci-publications-librarysignatures/orace-se-create.sql b/ccm-sci-publications-librarysignatures/sql/ccm-sci-publications-librarysignatures/orace-se-create.sql new file mode 100644 index 000000000..8cb4d2774 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/sql/ccm-sci-publications-librarysignatures/orace-se-create.sql @@ -0,0 +1,2 @@ +@@ ddl/oracle-se/create.sql +@@ ddl/oracle-se/deferred.sql \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/sql/ccm-sci-publications-librarysignatures/postgres-create.sql b/ccm-sci-publications-librarysignatures/sql/ccm-sci-publications-librarysignatures/postgres-create.sql new file mode 100644 index 000000000..ffc15342b --- /dev/null +++ b/ccm-sci-publications-librarysignatures/sql/ccm-sci-publications-librarysignatures/postgres-create.sql @@ -0,0 +1,4 @@ +begin; +\i ddl/postgres/create.sql +\i ddl/postgres/deferred.sql +commit; \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/LibrarySignatures.xml b/ccm-sci-publications-librarysignatures/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/LibrarySignatures.xml new file mode 100644 index 000000000..089f8d87c --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/LibrarySignatures.xml @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/src/ccm-sci-publiations-librarysignatures.config b/ccm-sci-publications-librarysignatures/src/ccm-sci-publiations-librarysignatures.config new file mode 100644 index 000000000..d9587fee9 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/ccm-sci-publiations-librarysignatures.config @@ -0,0 +1,4 @@ + + +//Nothing yet + \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/src/ccm-sci-publications-librarysignatures.load b/ccm-sci-publications-librarysignatures/src/ccm-sci-publications-librarysignatures.load new file mode 100644 index 000000000..382a7c85e --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/ccm-sci-publications-librarysignatures.load @@ -0,0 +1,21 @@ + + +
+
+
+
+ + + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignature.java b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignature.java new file mode 100644 index 000000000..db29a35d6 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignature.java @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contentassets; + +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.kernel.ACSObject; +import com.arsdigita.persistence.DataCollection; +import com.arsdigita.persistence.DataObject; +import com.arsdigita.persistence.OID; +import com.arsdigita.persistence.SessionManager; +import com.arsdigita.util.Assert; +import java.math.BigDecimal; + +/* + * @author Jens Pelzetter + * @version $Id$ + */ +public class LibrarySignature extends ACSObject { + + public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.cms.contentassets.LibrarySignature"; + + public static final String LIBRARY = "library"; + public static final String SIGNATURE = "signature"; + public static final String LIBRARY_LINK = "librarylink"; + public static final String PUBLICATION = "publication"; + + public LibrarySignature() { + super(BASE_DATA_OBJECT_TYPE); + } + + public LibrarySignature(final BigDecimal signatureId) { + super(new OID(BASE_DATA_OBJECT_TYPE, signatureId)); + } + + public LibrarySignature(final String type) { + super(type); + } + + public LibrarySignature(final DataObject dataObject) { + super(dataObject); + } + + public static LibrarySignature create(final Publication publication) { + final LibrarySignature signature = new LibrarySignature(); + signature.set(PUBLICATION, publication); + + return signature; + } + + public static DataCollection getLibrarySignatures(final Publication publication) { + + Assert.exists(publication, Publication.class); + + final DataCollection signatures = SessionManager.getSession().retrieve(BASE_DATA_OBJECT_TYPE); + + signatures.addEqualsFilter(PUBLICATION, publication.getID()); + signatures.addOrder(LIBRARY); + signatures.addOrder(SIGNATURE); + + return signatures; + + } + + public String getLibrary() { + return (String) get(LIBRARY); + } + + public void setLibrary(final String library) { + set(LIBRARY, library); + } + + public String getSignature() { + return (String) get(SIGNATURE); + } + + public void setSignature(final String signature) { + set(SIGNATURE, signature); + } + + public String getLibraryLink() { + return (String) get(LIBRARY_LINK); + } + + public void setLibraryLink(final String libraryLink) { + set(LIBRARY_LINK, libraryLink); + } + + public Publication getPublication() { + final DataObject dataObject = (DataObject) get(PUBLICATION); + + return (Publication) DomainObjectFactory.newInstance(dataObject); + } + + +} diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesInitializer.java b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesInitializer.java new file mode 100644 index 000000000..57762b8b2 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesInitializer.java @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contentassets; + +import com.arsdigita.cms.contentassets.ui.LibrarySignaturesStep; +import com.arsdigita.cms.contenttypes.ContentAssetInitializer; +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.dispatcher.SimpleXMLGenerator; +import com.arsdigita.domain.DomainObjectTraversal; +import com.arsdigita.domain.SimpleDomainObjectTraversalAdapter; +import com.arsdigita.globalization.GlobalizedMessage; +import com.arsdigita.runtime.DomainInitEvent; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class LibrarySignaturesInitializer extends ContentAssetInitializer { + + public LibrarySignaturesInitializer() { + super("ccm-sci-publications-librarysignatures.pdl.mf"); + } + + @Override + public void init(final DomainInitEvent event) { + super.init(event); + + DomainObjectTraversal.registerAdapter( + LibrarySignature.BASE_DATA_OBJECT_TYPE, + new SimpleDomainObjectTraversalAdapter(), + SimpleXMLGenerator.ADAPTER_CONTEXT); + } + + @Override + public String getBaseType() { + return Publication.BASE_DATA_OBJECT_TYPE; + } + + @Override + public String getTraversalXML() { + return TRAVERSAL_ADAPTER_BASE_DIR + "LibrarySignatures.xml"; + } + + @Override + public String getProperty() { + return "librarysignatures"; + } + + @Override + public Class getAuthoringStep() { + return LibrarySignaturesStep.class; + } + + @Override + public GlobalizedMessage getAuthoringStepLabel() { + return new GlobalizedMessage("com.arsdigita.cms.contentassets.librarysignatures.label", + "com.arsdigita.cms.contentassets.LibrarySignaturesResources"); + } + + @Override + public GlobalizedMessage getAuthoringStepDescription() { + return new GlobalizedMessage("com.arsdigita.cms.contentassets.librarysignatures.description", + "com.arsdigita.cms.contentassets.LibrarySignaturesResources"); + } + + @Override + public int getAuthoringStepSortKey() { + return 10; + } + +} diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesLoader.java b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesLoader.java new file mode 100644 index 000000000..81e536b32 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesLoader.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contentassets; + +import com.arsdigita.loader.PackageLoader; +import com.arsdigita.runtime.ScriptContext; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class LibrarySignaturesLoader extends PackageLoader { + + public void run(final ScriptContext ctx) { + //Nothing + } + +} diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesResources.properties b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesResources.properties new file mode 100644 index 000000000..b190dbb96 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesResources.properties @@ -0,0 +1,18 @@ +# To change this template, choose Tools | Templates +# and open the template in the editor. + +com.arsdigita.cms.contentassets.librarysignatures.label=Library signatures +com.arsdigita.cms.contentassets.LibrarySignaturesResources=Library signatures of the publication +scipublications.librarysignatures.none=No library signatures yet +scipublications.librarysignatures.columns.library=Library +scipublications.librarysignatures.columns.signature=Signature +scipublications.librarysignatures.columns.library_link=Link +scipublications.librarysignatures.columns.edit=Edit +scipublications.librarysignatures.columns.delete=Delete +scipublications.librarysignatures.edit=Edit +scipublications.librarysignatures.delete=Delete +scipublications.librarysignatures.add=Add library signature +scipublications.librarysignatures.form.library=Library +scipublications.librarysignatures.form.signature=Signature +scipublications.librarysignatures.form.link=Link to the library catalog +scipublications.librarysignatures.delete.confirm=Are you sure to delete this signature diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesResources_de.properties b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesResources_de.properties new file mode 100644 index 000000000..37a8f5004 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/LibrarySignaturesResources_de.properties @@ -0,0 +1,18 @@ +# To change this template, choose Tools | Templates +# and open the template in the editor. + +com.arsdigita.cms.contentassets.librarysignatures.label=Bibliothekssignaturen +com.arsdigita.cms.contentassets.LibrarySignaturesResources=Bibliothekssignaturen der Publikation +scipublications.librarysignatures.none=Noch keine Bibliothekssignaturen vorhanden +scipublications.librarysignatures.columns.library=Bibliothek +scipublications.librarysignatures.columns.signature=Signatur +scipublications.librarysignatures.columns.library_link=Link +scipublications.librarysignatures.columns.edit=Bearbeiten +scipublications.librarysignatures.columns.delete=L\u00f6schen +scipublications.librarysignatures.edit=Bearbeiten +scipublications.librarysignatures.delete=L\u00f6schen +scipublications.librarysignatures.add=Bibliothekssignatur hinzuf\u00fcgen +scipublications.librarysignatures.form.library=Bibliothek +scipublications.librarysignatures.form.signature=Signatur +scipublications.librarysignatures.form.link=Link zum Bibliothekskatalog +scipublications.librarysignatures.delete.confirm=Sind Sie sicher, dass Sie diese Bibliothekssignatur entfernen wollen? diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesAddForm.java b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesAddForm.java new file mode 100644 index 000000000..a3bc494d3 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesAddForm.java @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contentassets.ui; + +import com.arsdigita.bebop.FormData; +import com.arsdigita.bebop.FormProcessException; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.event.FormSectionEvent; +import com.arsdigita.bebop.form.TextField; +import com.arsdigita.bebop.parameters.NotEmptyValidationListener; +import com.arsdigita.bebop.parameters.NotNullValidationListener; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.contentassets.LibrarySignature; +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.ui.authoring.BasicItemForm; +import com.arsdigita.kernel.ui.ACSObjectSelectionModel; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class LibrarySignaturesAddForm extends BasicItemForm { + + private final static String LIBRARY = "library"; + private final static String SIGNATURE = "signature"; + private final static String LINK = "link"; + private final ItemSelectionModel itemModel; + private final ACSObjectSelectionModel signatureModel; + + public LibrarySignaturesAddForm(final ItemSelectionModel itemModel, final ACSObjectSelectionModel signatureModel) { + super("LibrarySignaturesAddForm", itemModel); + + this.itemModel = itemModel; + this.signatureModel = signatureModel; + } + + @Override + public void addWidgets() { + add(new Label(LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.form.library"))); + final TextField library = new TextField(LIBRARY); + library.addValidationListener(new NotNullValidationListener(LibrarySignaturesGlobalizationUtil.globalize( + "scipublications.librarysignatures.form.library.not_null"))); + library.addValidationListener(new NotEmptyValidationListener(LibrarySignaturesGlobalizationUtil.globalize( + "scipublications.librarysignatures.form.library.not_empty"))); + add(library); + + add(new Label(LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.form.signature"))); + final TextField signature = new TextField(SIGNATURE); + signature.addValidationListener(new NotNullValidationListener(LibrarySignaturesGlobalizationUtil.globalize( + "scipublications.librarysignatures.form.signature.not_null"))); + library.addValidationListener(new NotEmptyValidationListener(LibrarySignaturesGlobalizationUtil.globalize( + "scipublications.librarysignatures.form.signature.not_empty"))); + add(signature); + + add(new Label(LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.form.link"))); + add(new TextField(LINK)); + } + + @Override + public void init(final FormSectionEvent event) throws FormProcessException { + final PageState state = event.getPageState(); + + if (signatureModel.getSelectedObject(state) != null) { + final LibrarySignature signature = (LibrarySignature) signatureModel.getSelectedObject(state); + final FormData data = event.getFormData(); + + data.put(LIBRARY, signature.getLibrary()); + data.put(SIGNATURE, signature.getSignature()); + data.put(LINK, signature.getLibraryLink()); + } + + setVisible(state, true); + } + + @Override + public void process(final FormSectionEvent event) throws FormProcessException { + final FormData data = event.getFormData(); + final PageState state = event.getPageState(); + + final LibrarySignature signature; + if (signatureModel.getSelectedObject(state) == null) { + final Publication publication = (Publication) itemModel.getSelectedItem(state); + + signature = LibrarySignature.create(publication); + } else { + signature = (LibrarySignature) signatureModel.getSelectedObject(state); + + signatureModel.setSelectedObject(state, null); + } + + signature.setLibrary(data.getString(LIBRARY)); + signature.setSignature(data.getString(SIGNATURE)); + signature.setLibraryLink(data.getString(LINK)); + + signature.save(); + } + +} diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesGlobalizationUtil.java b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesGlobalizationUtil.java new file mode 100644 index 000000000..267de29c0 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesGlobalizationUtil.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contentassets.ui; + +import com.arsdigita.globalization.GlobalizedMessage; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public final class LibrarySignaturesGlobalizationUtil { + + private LibrarySignaturesGlobalizationUtil() { + //Nothing + } + + public static final String BUNDLE_NAME = "com.arsdigita.cms.contentassets.LibrarySignaturesResources"; + + public static GlobalizedMessage globalize(final String key) { + return new GlobalizedMessage(key, BUNDLE_NAME); + } + + public static GlobalizedMessage globalize(final String key, final Object[] args) { + return new GlobalizedMessage(key, BUNDLE_NAME, args); + } + +} diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesStep.java b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesStep.java new file mode 100644 index 000000000..8349dc08a --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesStep.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contentassets.ui; + +import com.arsdigita.bebop.Page; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.parameters.BigDecimalParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.AuthoringKitWizard; +import com.arsdigita.cms.ui.authoring.SimpleEditStep; +import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess; +import com.arsdigita.kernel.ui.ACSObjectSelectionModel; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class LibrarySignaturesStep extends SimpleEditStep { + + + protected static final String EDIT = "edit"; + protected static final String SIGNATURE_PARAM = "library_signature"; + + private static final String FORM_KEY = "LibrarySignaturesAdd"; + + private final ItemSelectionModel itemModel; + private final BigDecimalParameter signatureParam; + final LibrarySignaturesAddForm addForm; + + public LibrarySignaturesStep(final ItemSelectionModel itemModel, final AuthoringKitWizard parent) { + this(itemModel, parent, null); + } + + public LibrarySignaturesStep(final ItemSelectionModel itemModel, + final AuthoringKitWizard parent, + final String prefix ) { + + super(itemModel, parent, prefix); + + this.itemModel = itemModel; + + signatureParam = new BigDecimalParameter(SIGNATURE_PARAM); + final ACSObjectSelectionModel signatureModel = new ACSObjectSelectionModel(signatureParam); + + addForm = new LibrarySignaturesAddForm(itemModel, signatureModel); + add(FORM_KEY, + LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.add"), + new WorkflowLockedComponentAccess(addForm, itemModel), + addForm.getSaveCancelSection().getCancelButton()); + + final LibrarySignaturesTable table = new LibrarySignaturesTable(itemModel, signatureModel, this); + setDisplayComponent(table); + } + + @Override + public void register(final Page page) { + super.register(page); + + page.addComponentStateParam(this, signatureParam); + } + + protected void setAddVisible(final PageState state) { + showComponent(state, FORM_KEY); + + //addForm.setVisible(state, true); + } + +} diff --git a/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable.java b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable.java new file mode 100644 index 000000000..a5f606d56 --- /dev/null +++ b/ccm-sci-publications-librarysignatures/src/com/arsdigita/cms/contentassets/ui/LibrarySignaturesTable.java @@ -0,0 +1,303 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contentassets.ui; + +import com.arsdigita.bebop.Component; +import com.arsdigita.bebop.ControlLink; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.Table; +import com.arsdigita.bebop.event.TableActionEvent; +import com.arsdigita.bebop.event.TableActionListener; +import com.arsdigita.bebop.table.TableCellRenderer; +import com.arsdigita.bebop.table.TableColumn; +import com.arsdigita.bebop.table.TableColumnModel; +import com.arsdigita.bebop.table.TableModel; +import com.arsdigita.bebop.table.TableModelBuilder; +import com.arsdigita.cms.CMS; +import com.arsdigita.cms.ContentItem; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.contentassets.LibrarySignature; +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.globalization.GlobalizedMessage; +import com.arsdigita.kernel.ui.ACSObjectSelectionModel; +import com.arsdigita.persistence.DataCollection; +import com.arsdigita.persistence.DataObject; +import com.arsdigita.persistence.SessionManager; +import com.arsdigita.util.LockableImpl; +import java.math.BigDecimal; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class LibrarySignaturesTable extends Table { + + private final static String TABLE_COL_LIBRARY = "table_col_library"; + private final static String TABLE_COL_SIGNATURE = "table_col_signature"; + private final static String TABLE_COL_LIBRARY_LINK = "table_col_library_link"; + private final static String TABLE_COL_EDIT = "table_col_edit"; + private final static String TABLE_COL_DEL = "table_col_del"; + //private final static String SELECTED_LIB_SIG = "selected_library_signature"; + private final LibrarySignaturesStep parent; + private final ItemSelectionModel itemModel; + private final ACSObjectSelectionModel signatureModel; + + public LibrarySignaturesTable(final ItemSelectionModel itemModel, + final ACSObjectSelectionModel signatureModel, + final LibrarySignaturesStep parent) { + + super(); + + this.parent = parent; + this.itemModel = itemModel; + this.signatureModel = signatureModel; + + setEmptyView(new Label(LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.none"))); + + final TableColumnModel columnModel = getColumnModel(); + + columnModel.add(new TableColumn( + 0, + LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.columns.library"), + TABLE_COL_LIBRARY)); + columnModel.add(new TableColumn( + 1, + LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.columns.signature"), + TABLE_COL_SIGNATURE)); + columnModel.add(new TableColumn( + 2, + LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.columns.library_link"), + TABLE_COL_LIBRARY_LINK)); + columnModel.add(new TableColumn( + 3, + LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.columns.edit"), + TABLE_COL_EDIT)); + columnModel.add(new TableColumn( + 4, + LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.columns.edit"), + TABLE_COL_DEL)); + + setModelBuilder(new ModelBuilder(itemModel)); + + columnModel.get(3).setCellRenderer(new EditCellRenderer()); + columnModel.get(4).setCellRenderer(new DeleteCellRenderer()); + + addTableActionListener(new ActionListener()); + + } + + private class ModelBuilder extends LockableImpl implements TableModelBuilder { + + private final ItemSelectionModel itemModel; + + public ModelBuilder(final ItemSelectionModel itemModel) { + this.itemModel = itemModel; + } + + @Override + public TableModel makeModel(final Table table, final PageState state) { + table.getRowSelectionModel().clearSelection(state); + + final Publication publication = (Publication) itemModel.getSelectedItem(state); + + return new Model(table, state, publication); + } + + } + + private class Model implements TableModel { + + private final Table table; + private final DataCollection librarySignatures; + + public Model(final Table table, final PageState state, final Publication publication) { + this.table = table; + + librarySignatures = LibrarySignature.getLibrarySignatures(publication); + librarySignatures.addOrder(LibrarySignature.LIBRARY); + librarySignatures.addOrder(LibrarySignature.SIGNATURE); + } + + @Override + public int getColumnCount() { + return table.getColumnModel().size(); + } + + @Override + public boolean nextRow() { +// boolean ret; +// +// if ((librarySignatures != null) && librarySignatures.next()) { +// ret = true; +// } else { +// ret = false; +// } +// +// return ret; + + return (librarySignatures != null) && librarySignatures.next(); + } + + @Override + public Object getElementAt(final int columnIndex) { + switch (columnIndex) { + case 0: + return librarySignatures.get(LibrarySignature.LIBRARY); + case 1: + return librarySignatures.get(LibrarySignature.SIGNATURE); + case 2: + return librarySignatures.get(LibrarySignature.LIBRARY_LINK); + case 3: + return LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.edit"); + case 4: + return LibrarySignaturesGlobalizationUtil.globalize("scipublications.librarysignatures.delete"); + default: + return null; + } + } + + @Override + public Object getKeyAt(final int columnIndex) { + return librarySignatures.get(ContentItem.ID); + } + + } + + private class EditCellRenderer extends LockableImpl implements TableCellRenderer { + + public EditCellRenderer() { + //Nothing + } + + @Override + public Component getComponent(final Table table, + final PageState state, + final Object value, + final boolean isSelected, + final Object key, + final int row, + final int column) { + final com.arsdigita.cms.SecurityManager securityManager = CMS.getSecurityManager(state); + final Publication publication = (Publication) itemModel.getSelectedItem(state); + + final boolean canEdit = securityManager.canAccess(state.getRequest(), + com.arsdigita.cms.SecurityManager.EDIT_ITEM, + publication); + + if (canEdit) { + final ControlLink link; + if (value instanceof GlobalizedMessage) { + link = new ControlLink(new Label((GlobalizedMessage) value)); + } else if (value == null) { + return new Label("???"); + } else { + link = new ControlLink(value.toString()); + } + return link; + } else { + final Label label; + if (value instanceof GlobalizedMessage) { + label = new Label((GlobalizedMessage) value); + } else if (value == null) { + return new Label("???"); + } else { + label = new Label(value.toString()); + } + return label; + } + } + + } + + private class DeleteCellRenderer extends LockableImpl implements TableCellRenderer { + + public DeleteCellRenderer() { + //Nothing + } + + @Override + public Component getComponent(final Table table, + final PageState state, + final Object value, + final boolean isSelected, + final Object key, + final int row, + final int column) { + final com.arsdigita.cms.SecurityManager securityManager = CMS.getSecurityManager(state); + final Publication publication = (Publication) itemModel.getSelectedItem(state); + + final boolean canEdit = securityManager.canAccess(state.getRequest(), + com.arsdigita.cms.SecurityManager.EDIT_ITEM, + publication); + + if (canEdit) { + final ControlLink link; + if (value instanceof GlobalizedMessage) { + link = new ControlLink(new Label((GlobalizedMessage) value)); + } else { + link = new ControlLink(value.toString()); + } + link.setConfirmation(LibrarySignaturesGlobalizationUtil.globalize( + "scipublications.librarysignatures.delete.confirm")); + return link; + } else { + final Label label; + if (value instanceof GlobalizedMessage) { + label = new Label((GlobalizedMessage) value); + } else { + label = new Label(value.toString()); + } + return label; + } + } + + } + + private class ActionListener implements TableActionListener { + + public ActionListener() { + //Nothing for now + } + + @Override + public void cellSelected(final TableActionEvent event) { + final PageState state = event.getPageState(); + + final LibrarySignature signature = new LibrarySignature(new BigDecimal(event.getRowKey().toString())); + + final TableColumn column = getColumnModel().get(event.getColumn().intValue()); + + if (TABLE_COL_EDIT.equals(column.getHeaderKey().toString())) { + signatureModel.setSelectedObject(state, signature); + parent.setAddVisible(state); + } else if (TABLE_COL_DEL.equals(column.getHeaderKey().toString())) { + signature.delete(); + } + + } + + @Override + public void headSelected(final TableActionEvent event) { + //Nothing to do here + } + + } +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationAuthorsTable.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationAuthorsTable.java index f3b843031..f6c06b124 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationAuthorsTable.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationAuthorsTable.java @@ -42,6 +42,7 @@ import com.arsdigita.cms.dispatcher.ItemResolver; import com.arsdigita.cms.dispatcher.Utilities; import com.arsdigita.cms.ui.authoring.SimpleEditStep; import com.arsdigita.dispatcher.ObjectNotFoundException; +import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.util.LockableImpl; import java.math.BigDecimal; import org.apache.log4j.Logger; @@ -223,7 +224,7 @@ public class PublicationAuthorsTable int row, int col) { SecurityManager securityManager = - Utilities.getSecurityManager(state); + CMS.getSecurityManager(state); Publication publication = (Publication) m_itemModel. getSelectedObject(state); @@ -240,7 +241,11 @@ public class PublicationAuthorsTable s_log.warn(String.format("No object with key '%s' found.", key), ex); - return new Label(value.toString()); + if (value instanceof GlobalizedMessage) { + return new Label((GlobalizedMessage) value); + } else { + return new Label(value.toString()); + } } ContentSection section = author.getContentSection();//CMS.getContext().getContentSection(); diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitAddForm.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitAddForm.java index fcde2e5eb..e3b0c1351 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitAddForm.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitAddForm.java @@ -54,8 +54,7 @@ public class PublicationGenericOrganizationalUnitAddForm @Override public void addWidgets() { - add(new Label((String) PublicationGlobalizationUtil.globalize( - "publications.ui.orgaunit.select").localize())); + add(new Label(PublicationGlobalizationUtil.globalize("publications.ui.orgaunit.select"))); itemSearch = new ItemSearchWidget(ITEM_SEARCH, ContentType. findByAssociatedObjectType(GenericOrganizationalUnit.class. getName())); @@ -84,7 +83,7 @@ public class PublicationGenericOrganizationalUnitAddForm ITEM_SEARCH); orgaunit = (GenericOrganizationalUnit) orgaunit.getContentBundle(). getInstance(publication.getLanguage(), true); - + publication.addOrganizationalUnit(orgaunit); itemSearch.publishCreatedItem(data, orgaunit); } @@ -129,4 +128,5 @@ public class PublicationGenericOrganizationalUnitAddForm orgaunits.close(); } + } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitsStep.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitsStep.java index 10c505ea9..cd8785fee 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitsStep.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationGenericOrganizationalUnitsStep.java @@ -48,7 +48,7 @@ public class PublicationGenericOrganizationalUnitsStep extends SimpleEditStep { final BasicItemForm addOrgaUnitSheet = new PublicationGenericOrganizationalUnitAddForm( itemModel); add(ADD_ORGAUNIT_SHEET_NAME, - (String) PublicationGlobalizationUtil.globalize("publications.ui.orgaunit.add").localize(), + PublicationGlobalizationUtil.globalize("publications.ui.orgaunit.add"), new WorkflowLockedComponentAccess(addOrgaUnitSheet, itemModel), addOrgaUnitSheet.getSaveCancelSection().getCancelButton());