| 1 28 29 package com.idaremedia.antx; 30 31 import com.idaremedia.apis.EmptyStringManager; 32 import com.idaremedia.apis.UIStringManager; 33 34 import com.idaremedia.antx.apis.ProblemHandler; 35 36 48 49 public final class UISMContext implements FixtureCore, FixtureAdministrator 50 { 51 54 public static final String FXID= FixtureIds.MSGS_STRINGMANAGER; 55 56 57 58 63 public static UIStringManager getStringManager() 64 { 65 return (UIStringManager)FixtureOverlays.getContextInstance().nearest(FXID); 66 } 67 68 69 70 75 public static UIStringManager getStringManagerNoNull() 76 { 77 UIStringManager sm = getStringManager(); 78 return (sm!=null) ? sm : getDefaultStringManager(); 79 } 80 81 82 83 92 public static UIStringManager installStringManager(UIStringManager sm, 93 ProblemHandler noInstallHandler) 94 { 95 if (sm==null) { 96 throw new IllegalArgumentException  97 (AntX.uistrs().get("task.uism.null.sm")); 98 } 99 100 String whoami = AntX.uistrs().dget("task.uism.whoami", "UIStringManager"); 101 return (UIStringManager)FixtureOverlays.installIfNot 102 (FXID, sm, noInstallHandler, whoami); 103 } 104 105 106 107 114 public static void unwindStringManager(ProblemHandler noUninstallHandler) 115 { 116 String whoami = AntX.uistrs().dget("task.uism.whoami","UIStringManager"); 117 FixtureOverlays.uninstallIfIs(FXID, noUninstallHandler, whoami); 118 } 119 120 121 122 127 public static final UIStringManager getDefaultStringManager() 128 { 129 UIStringManager sm = (UIStringManager)Iteration.getProperty(FXID); 130 return (sm==null) ? EmptyStringManager.INSTANCE : sm; 131 } 132 133 134 135 144 public static final UIStringManager setDefaultStringManager(UIStringManager sm) 145 { 146 if (sm==null) { 147 throw new IllegalArgumentException  148 (AntX.uistrs().get("task.uism.null.sm")); 149 } 150 return (UIStringManager)Iteration.setProperty(FXID,sm); 151 } 152 153 154 155 161 public static final boolean isDefaultUndefined() 162 { 163 return getDefaultStringManager()==EmptyStringManager.INSTANCE; 164 } 165 166 167 168 175 static final void unsetDefaultStringManager() 176 { 177 Iteration.removeProperty(FXID); 178 } 179 180 181 182 183 190 static { 191 AntXFixture.setKillMethod 192 (FXID, 193 new String []{"messagebundles","stringmanagers"}, 194 new KillMethodSkeleton() { 195 protected boolean killDefault(ProblemHandler from) { 196 UISMContext.unsetDefaultStringManager(); 197 return true; 198 } 199 protected String getComponentId() { 200 return UISMContext.FXID; 201 } 202 protected String getComponentName() { 203 return AntX.uistrs().dget 204 ("task.uism.whoami", "UIStringManager"); 205 } 206 } 207 ); 208 } 209 210 211 212 213 private UISMContext() 214 { } 215 } 216 217 218 | Popular Tags |