You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/03/20 19:51:59 UTC

[2/2] isis git commit: ISIS-1102: toggle between modes.

ISIS-1102: toggle between modes.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3044f028
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3044f028
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3044f028

Branch: refs/heads/master
Commit: 3044f02882278f29efb0663a1b7fdfd9e0a60c16
Parents: 53da961
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Mar 20 18:47:29 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Mar 20 18:47:29 2015 +0000

----------------------------------------------------------------------
 .../services/i18n/po/TranslationServicePo.java  | 28 ++++++++++++
 .../i18n/po/TranslationServicePoMenu.java       | 48 ++++++++++++++++++++
 2 files changed, 76 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/3044f028/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePo.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePo.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePo.java
index 5ec4ccf..0660219 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePo.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePo.java
@@ -134,6 +134,34 @@ public class TranslationServicePo implements TranslationService {
         ((PoReader)po).clearCache();
     }
 
+    private PoReader previousPoReader;
+    private PoWriter previousPoWriter;
+
+    /**
+     * Not API
+     */
+    @Programmatic
+    public void toggleMode() {
+        if(getMode().isRead()) {
+            previousPoReader = (PoReader) po;
+            if (previousPoWriter != null) {
+                po = previousPoWriter;
+            } else {
+                po = new PoWriter(this);
+            }
+        } else {
+            previousPoWriter = (PoWriter)po;
+            if(previousPoReader != null) {
+                previousPoReader.clearCache();
+                po = previousPoReader;
+            } else {
+                final PoReader poReader = new PoReader(this);
+                poReader.init();
+                po = poReader;
+            }
+        }
+    }
+
     // //////////////////////////////////////
 
     DeploymentType getDeploymentType() {

http://git-wip-us.apache.org/repos/asf/isis/blob/3044f028/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePoMenu.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePoMenu.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePoMenu.java
index 6b737a3..a2873f1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePoMenu.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/TranslationServicePoMenu.java
@@ -112,6 +112,54 @@ public class TranslationServicePoMenu {
 
     // //////////////////////////////////////
 
+    public static class SwitchToReadingTranslationsDomainEvent extends ActionDomainEvent {
+        public SwitchToReadingTranslationsDomainEvent(final TranslationServicePoMenu source, final Identifier identifier, final Object... arguments) {
+            super(source, identifier, arguments);
+        }
+    }
+
+    @Action(
+            domainEvent = SwitchToReadingTranslationsDomainEvent.class,
+            semantics = SemanticsOf.IDEMPOTENT,
+            restrictTo = RestrictTo.PROTOTYPING
+    )
+    @ActionLayout(
+            cssClassFa = "fa-book"
+    )
+    @MemberOrder(sequence="500.500.3")
+    public void switchToReadingTranslations() {
+        translationService.toggleMode();
+    }
+    public boolean hideSwitchToReadingTranslations() {
+        return translationService.getMode().isRead();
+    }
+
+    // //////////////////////////////////////
+
+    public static class SwitchToWritingTranslationsDomainEvent extends ActionDomainEvent {
+        public SwitchToWritingTranslationsDomainEvent(final TranslationServicePoMenu source, final Identifier identifier, final Object... arguments) {
+            super(source, identifier, arguments);
+        }
+    }
+
+    @Action(
+            domainEvent = SwitchToWritingTranslationsDomainEvent.class,
+            semantics = SemanticsOf.IDEMPOTENT,
+            restrictTo = RestrictTo.PROTOTYPING
+    )
+    @ActionLayout(
+            cssClassFa = "fa-pencil"
+    )
+    @MemberOrder(sequence="500.500.4")
+    public void switchToWritingTranslations() {
+        translationService.toggleMode();
+    }
+    public boolean hideSwitchToWritingTranslations() {
+        return translationService.getMode().isWrite();
+    }
+
+    // //////////////////////////////////////
+
     @Inject
     private TranslationServicePo translationService;