From b1fba0f19eef96a3495976a007e7191df0677293 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 9 Aug 2017 15:19:04 +0000 Subject: [PATCH] CCM NG/ccm-cms: Moving attached images works now git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4901 8810af33-2d31-482b-a856-94f89814c4df --- .../assets/ItemAttachmentSelectionModel.java | 24 +++++++++++-------- .../assets/images/AssignedImagesTable.java | 6 +++-- .../ui/authoring/assets/images/ImageStep.java | 4 ++++ .../contentsection/ItemAttachmentManager.java | 1 + 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/ItemAttachmentSelectionModel.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/ItemAttachmentSelectionModel.java index 6ce4cfef7..4e1c0c4a1 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/ItemAttachmentSelectionModel.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/ItemAttachmentSelectionModel.java @@ -33,18 +33,18 @@ import org.librecms.contentsection.ItemAttachmentManager; * * @author Jens Pelzetter */ -public class ItemAttachmentSelectionModel implements SingleSelectionModel{ - +public class ItemAttachmentSelectionModel implements SingleSelectionModel { + private final SingleSelectionModel model; public ItemAttachmentSelectionModel(final LongParameter parameter) { this.model = new ParameterSingleSelectionModel<>(parameter); } - + public ItemAttachmentSelectionModel(final String parameterName) { this(new LongParameter(parameterName)); } - + @Override public boolean isSelected(final PageState state) { return model.isSelected(state); @@ -71,12 +71,16 @@ public class ItemAttachmentSelectionModel implements SingleSelectionModel{ public ItemAttachment getSelectedAttachment(final PageState state) { final Long key = getSelectedKey(state); - final ItemAttachmentManager manager = CdiUtil - .createCdiUtil() - .findBean(ItemAttachmentManager.class); - return manager.findById(key).get(); + if (key == null) { + return null; + } else { + final ItemAttachmentManager manager = CdiUtil + .createCdiUtil() + .findBean(ItemAttachmentManager.class); + return manager.findById(key).get(); + } } - + @Override public void clearSelection(final PageState state) { model.clearSelection(state); @@ -96,5 +100,5 @@ public class ItemAttachmentSelectionModel implements SingleSelectionModel{ public ParameterModel getStateParameter() { return model.getStateParameter(); } - + } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java index 5f79a1a00..07b003dfb 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java @@ -133,11 +133,12 @@ class AssignedImagesTable extends Table { switch (column.getModelIndex()) { case COL_MOVE: if (moveAttachmentModel - .getSelectedAttachment(state) == null) { + .getSelectedKey(state) == null) { moveAttachmentModel .setSelectedKey(state, - Long.parseLong(column.getKey())); + Long.parseLong((String) event + .getRowKey())); } else { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final ImageStepController controller = cdiUtil @@ -151,6 +152,7 @@ class AssignedImagesTable extends Table { .parseLong((String) event.getRowKey()); controller.moveAfter(selectedAttachment, destId); + moveAttachmentModel.setSelectedKey(state, null); } break; case COL_REMOVE: diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStep.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStep.java index d4de04514..dbdcee13c 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStep.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStep.java @@ -146,6 +146,8 @@ public class ImageStep extends ResettableContainer { .findBean(ImageStepController.class); controller.moveToFirst(toMove); + + moveAttachmentModel.setSelectedKey(state, null); }); assignedImagesTable = new AssignedImagesTable(itemSelectionModel, @@ -197,6 +199,8 @@ public class ImageStep extends ResettableContainer { page.setVisibleDefault(addImageHeader, false); page.setVisibleDefault(cancelAddImage, false); page.setVisibleDefault(availableImages, false); + + page.addComponentStateParam(assignedImagesTable, moveAttachmentParam); } protected void showAssignedImages(final PageState state) { diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java index 77ee12c45..236c974ac 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java @@ -53,6 +53,7 @@ public class ItemAttachmentManager { @Inject private AssetManager assetManager; + @Transactional(Transactional.TxType.REQUIRED) public Optional> findById(final long attachmentId) { final TypedQuery query = entityManager