/** * Copyright 2013 European Parliament * * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * * http://joinup.ec.europa.eu/software/page/eupl * * Unless required by applicable law or agreed to in writing, software distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and limitations under the Licence. */ package org.nsesa.editor.gwt.an.amendments.client.ui.amendment; import com.google.inject.Inject; import com.google.inject.name.Named; import org.nsesa.editor.gwt.amendment.client.ui.amendment.AmendmentController; import org.nsesa.editor.gwt.core.client.ui.overlay.document.OverlayWidget; import org.nsesa.editor.gwt.core.client.util.OverlayUtil; /** * Date: 31/01/13 11:48 * * @author <a href="mailto:philip.luppens@gmail.com">Philip Luppens</a> * @version $Id$ */ public class AkomaNtosoAmendmentControllerUtil { @Inject @Named("default.pathToOriginalContent") public static String XPATH_DEFAULT_ORIGINAL; @Inject @Named("default.pathToAmendmentContent") public static String XPATH_DEFAULT_AMENDMENT; public static OverlayWidget getOriginalContentFromView(final AmendmentController amendmentController) { return getOriginalContent(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), amendmentController.getView().getPathToOriginalContent()); } public static OverlayWidget getOriginalContentFromExtendedView(final AmendmentController amendmentController) { return getOriginalContent(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), amendmentController.getExtendedView().getPathToOriginalContent()); } public static OverlayWidget getOriginalContentFromModel(final AmendmentController amendmentController) { return getOriginalContent(amendmentController.asAmendableWidget(amendmentController.getModel().getBody()), XPATH_DEFAULT_ORIGINAL); } private static OverlayWidget getOriginalContent(final OverlayWidget overlayWidget, String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return null; return OverlayUtil.xpathSingle(path, overlayWidget); } public static void setOriginalContentOnViews(final AmendmentController amendmentController, final String originalContent) { setOriginalContent(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, amendmentController.getView().getPathToOriginalContent()); setOriginalContent(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), originalContent, amendmentController.getExtendedView().getPathToOriginalContent()); } public static void setOriginalContentOnModel(final AmendmentController amendmentController, final String originalContent) { setOriginalContent(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, XPATH_DEFAULT_ORIGINAL); } private static void setOriginalContent(final OverlayWidget overlayWidget, final String originalContent, final String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return; final OverlayWidget quotedStructure = OverlayUtil.xpathSingle(path, overlayWidget); if (quotedStructure != null) quotedStructure.setInnerHTML(originalContent); } public static void setOriginalNumOnViews(final AmendmentController amendmentController, final String originalContent) { setOriginalNum(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, amendmentController.getView().getPathToOriginalContent()); setOriginalNum(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), originalContent, amendmentController.getExtendedView().getPathToOriginalContent()); } public static void setOriginalNumOnModel(final AmendmentController amendmentController, final String originalContent) { setOriginalNum(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, XPATH_DEFAULT_ORIGINAL); } private static void setOriginalNum(final OverlayWidget overlayWidget, final String num, final String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return; final OverlayWidget quotedStructure = OverlayUtil.xpathSingle(path, overlayWidget); final OverlayWidget numOverlayWidget = OverlayUtil.findSingle("num", quotedStructure); if (numOverlayWidget != null) numOverlayWidget.setInnerHTML(num); } public static OverlayWidget getOriginalNumFromView(final AmendmentController amendmentController) { return getOriginalNum(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), amendmentController.getView().getPathToOriginalContent()); } public static OverlayWidget getOriginalNumFromExtendedView(final AmendmentController amendmentController) { return getOriginalNum(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), amendmentController.getExtendedView().getPathToOriginalContent()); } public static OverlayWidget getOriginalNumFromModel(final AmendmentController amendmentController) { return getOriginalNum(amendmentController.asAmendableWidget(amendmentController.getModel().getBody()), XPATH_DEFAULT_ORIGINAL); } private static OverlayWidget getOriginalNum(final OverlayWidget overlayWidget, final String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return null; final OverlayWidget quotedStructure = OverlayUtil.xpathSingle(path, overlayWidget); return OverlayUtil.findSingle("num", quotedStructure); } public static OverlayWidget getAmendmentContentFromView(final AmendmentController amendmentController) { return getAmendmentContent(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), amendmentController.getView().getPathToOriginalContent()); } public static OverlayWidget getAmendmentContentFromExtendedView(final AmendmentController amendmentController) { return getAmendmentContent(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), amendmentController.getExtendedView().getPathToOriginalContent()); } public static OverlayWidget getAmendmentContentFromModel(final AmendmentController amendmentController) { return getAmendmentContent(amendmentController.asAmendableWidget(amendmentController.getModel().getBody()), XPATH_DEFAULT_AMENDMENT); } private static OverlayWidget getAmendmentContent(final OverlayWidget overlayWidget, final String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return null; return OverlayUtil.xpathSingle(path, overlayWidget); } public static void setAmendmentContentOnViews(final AmendmentController amendmentController, final String originalContent) { setAmendmentContent(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, amendmentController.getView().getPathToAmendmentContent()); setAmendmentContent(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), originalContent, amendmentController.getExtendedView().getPathToAmendmentContent()); } public static void setAmendmentContentOnModel(final AmendmentController amendmentController, final String originalContent) { setAmendmentContent(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, XPATH_DEFAULT_AMENDMENT); } private static void setAmendmentContent(final OverlayWidget overlayWidget, final String originalContent, final String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return; final OverlayWidget quotedStructure = OverlayUtil.xpathSingle(path, overlayWidget); if (quotedStructure != null) quotedStructure.setInnerHTML(originalContent); } public static void setAmendmentNumOnViews(final AmendmentController amendmentController, final String originalContent) { setAmendmentNum(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, amendmentController.getView().getPathToAmendmentContent()); setAmendmentNum(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), originalContent, amendmentController.getExtendedView().getPathToAmendmentContent()); } public static void setAmendmentNumOnModel(final AmendmentController amendmentController, final String originalContent) { setAmendmentNum(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), originalContent, XPATH_DEFAULT_AMENDMENT); } private static void setAmendmentNum(final OverlayWidget overlayWidget, final String num, final String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return; final OverlayWidget quotedStructure = OverlayUtil.xpathSingle(path, overlayWidget); final OverlayWidget numOverlayWidget = OverlayUtil.findSingle("num", quotedStructure); if (numOverlayWidget != null) numOverlayWidget.setInnerHTML(num); } public static OverlayWidget getAmendmentNumFromView(final AmendmentController amendmentController) { return getAmendmentNum(amendmentController.asAmendableWidget(amendmentController.getView().getBody()), amendmentController.getView().getPathToAmendmentContent()); } public static OverlayWidget getAmendmentNumFromExtendedView(final AmendmentController amendmentController) { return getAmendmentNum(amendmentController.asAmendableWidget(amendmentController.getExtendedView().getBody()), amendmentController.getExtendedView().getPathToAmendmentContent()); } public static OverlayWidget getAmendmentNumFromModel(final AmendmentController amendmentController) { return getAmendmentNum(amendmentController.asAmendableWidget(amendmentController.getModel().getBody()), XPATH_DEFAULT_AMENDMENT); } private static OverlayWidget getAmendmentNum(final OverlayWidget overlayWidget, final String path) { if (overlayWidget == null) throw new NullPointerException("Overlay widget cannot be null."); if (path == null) return null; final OverlayWidget quotedStructure = OverlayUtil.xpathSingle(path, overlayWidget); return OverlayUtil.findSingle("num", quotedStructure); } }