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;