aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/itmill/toolkit/demo/colorpicker/gwt/ColorPickerWidgetSet.gwt.xml4
-rw-r--r--src/com/itmill/toolkit/demo/reservation/gwt/ReservationWidgetSet.gwt.xml4
-rw-r--r--src/com/itmill/toolkit/demo/sampler/gwt/SamplerWidgetSet.gwt.xml4
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSet.gwt.xml32
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSetNoEntry.gwt.xml50
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ApplicationConfiguration.java26
6 files changed, 64 insertions, 56 deletions
diff --git a/src/com/itmill/toolkit/demo/colorpicker/gwt/ColorPickerWidgetSet.gwt.xml b/src/com/itmill/toolkit/demo/colorpicker/gwt/ColorPickerWidgetSet.gwt.xml
index 798a5e68cb..b04380772e 100644
--- a/src/com/itmill/toolkit/demo/colorpicker/gwt/ColorPickerWidgetSet.gwt.xml
+++ b/src/com/itmill/toolkit/demo/colorpicker/gwt/ColorPickerWidgetSet.gwt.xml
@@ -1,6 +1,6 @@
<module>
- <!-- Inherit the NoEntry version to avoid multiple entrypoints -->
- <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSetNoEntry" />
+ <!-- Inherit DefaultWidgetSet -->
+ <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSet" />
<!-- WidgetSet default theme -->
<stylesheet src="colorpicker/styles.css"/>
diff --git a/src/com/itmill/toolkit/demo/reservation/gwt/ReservationWidgetSet.gwt.xml b/src/com/itmill/toolkit/demo/reservation/gwt/ReservationWidgetSet.gwt.xml
index f68a043fe3..a15cd4185f 100644
--- a/src/com/itmill/toolkit/demo/reservation/gwt/ReservationWidgetSet.gwt.xml
+++ b/src/com/itmill/toolkit/demo/reservation/gwt/ReservationWidgetSet.gwt.xml
@@ -1,6 +1,6 @@
<module>
- <!-- Inherit the NoEntry version to avoid multiple entrypoints -->
- <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSetNoEntry" />
+ <!-- Inherit DefaultWidgetSet -->
+ <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSet" />
<!-- The googlemaps_gwt module -->
<inherits name="com.google.gwt.maps.GoogleMaps" />
diff --git a/src/com/itmill/toolkit/demo/sampler/gwt/SamplerWidgetSet.gwt.xml b/src/com/itmill/toolkit/demo/sampler/gwt/SamplerWidgetSet.gwt.xml
index c294d883f5..6f09f7a865 100644
--- a/src/com/itmill/toolkit/demo/sampler/gwt/SamplerWidgetSet.gwt.xml
+++ b/src/com/itmill/toolkit/demo/sampler/gwt/SamplerWidgetSet.gwt.xml
@@ -1,6 +1,6 @@
<module>
- <!-- Inherit the NoEntry version to avoid multiple entrypoints -->
- <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSetNoEntry" />
+ <!-- Inherit the DefaultWidgetSet -->
+ <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSet" />
<!-- WidgetSet default theme -->
<stylesheet src="sampler/styles.css"/>
diff --git a/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSet.gwt.xml b/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSet.gwt.xml
index a226292394..1139506cc4 100644
--- a/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSet.gwt.xml
+++ b/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSet.gwt.xml
@@ -1,7 +1,29 @@
<module>
- <source path="client"/>
-
- <!-- This module just defines a entrypoint for the DefaultWidgetSet -->
- <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSetNoEntry"/>
- <entry-point class="com.itmill.toolkit.terminal.gwt.client.DefaultWidgetSet"/>
+ <!--
+ This GWT module defines the IT Mill Toolkit DefaultWidgetSet. This is
+ the module you want to extend when creating an extended widget set, or
+ when creating a specialized widget set with a subset of the
+ components.
+ -->
+ <!--
+ NOTE that your WidgetSet entry-point (.java) should have the same
+ "logical" name (a.k.a SimpleName) as the specification (.gwt.xml).
+ -->
+ <!--
+ E.g: com/example/gwt/MyWidgetSet.gwt.xml should point to the
+ entry-point
+ com.example.gwt.client[.some.package].MyWidgetSet.java
+ -->
+
+ <inherits name="com.google.gwt.user.User" />
+
+ <inherits name="com.google.gwt.http.HTTP" />
+
+ <inherits name="com.google.gwt.xml.XML" />
+
+ <inherits name="com.google.gwt.json.JSON" />
+
+ <source path="client" />
+
+ <entry-point class="com.itmill.toolkit.terminal.gwt.client.DefaultWidgetSet" />
</module>
diff --git a/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSetNoEntry.gwt.xml b/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSetNoEntry.gwt.xml
index 7520019676..3745d3f2c0 100644
--- a/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSetNoEntry.gwt.xml
+++ b/src/com/itmill/toolkit/terminal/gwt/DefaultWidgetSetNoEntry.gwt.xml
@@ -1,46 +1,6 @@
<module>
- <!--
- This is the NoEntry version of DefaultWidgetSet.
- This is the module you want to extend when creating an extended
- widget set.
- -->
-
- <inherits name="com.google.gwt.user.User"/>
-
- <inherits name="com.google.gwt.http.HTTP"/>
-
- <inherits name="com.google.gwt.xml.XML"/>
-
- <inherits name="com.google.gwt.json.JSON"/>
-
- <source path="client"/>
-
- <source path="gwtwidgets"/>
-
- <!--
- Default theme for this widget set.
- Please name the sub directory differently when creating a extended widget set
- (e.g. src="mywidgets/styles.css") to avoid naming conflicts.
-
- <stylesheet src="default/common/common.css"/>
- <stylesheet src="default/button/button.css"/>
- <stylesheet src="default/textfield/textfield.css"/>
- <stylesheet src="default/select/select.css"/>
- <stylesheet src="default/panel/panel.css"/>
- <stylesheet src="default/tabsheet/tabsheet.css"/>
- <stylesheet src="default/datefield/datefield.css"/>
- <stylesheet src="default/table/table.css"/>
- <stylesheet src="default/slider/slider.css"/>
- <stylesheet src="default/window/window.css"/>
- <stylesheet src="default/window/notification.css"/>
- <stylesheet src="default/caption/caption.css"/>
- <stylesheet src="default/tree/tree.css"/>
- <stylesheet src="default/splitpanel/splitpanel.css"/>
- <stylesheet src="default/select/filterselect.css"/>
- <stylesheet src="default/progressindicator/progressindicator.css"/>
- <stylesheet src="default/expandlayout/expandlayout.css"/>
- <stylesheet src="default/orderedlayout/orderedlayout.css"/>
- <stylesheet src="default/accordion/accordion.css"/>
- -->
-
-</module>
+ <!--
+ "NoEntry" -concept deprecated, inherit DefaultWidgetSet instead.
+ -->
+ <inherits name="com.itmill.toolkit.terminal.gwt.DefaultWidgetSet" />
+</module> \ No newline at end of file
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConfiguration.java b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConfiguration.java
index 919ab0807c..06dee4db43 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConfiguration.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConfiguration.java
@@ -4,10 +4,14 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
public class ApplicationConfiguration {
+ // can only be inited once, to avoid multiple-entrypoint-problem
+ private static WidgetSet initedWidgetSet;
+
private String id;
private String themeUri;
private String pathInfo;
@@ -105,6 +109,28 @@ public class ApplicationConfiguration {
* the widgetset that is running the apps
*/
public static void initConfigurations(WidgetSet widgetset) {
+ String wsname = widgetset.getClass().getName();
+ String module = GWT.getModuleName();
+ int lastdot = module.lastIndexOf(".");
+ String base = module.substring(0, lastdot);
+ String simpleName = module.substring(lastdot + 1);
+ if (!wsname.startsWith(base) || !wsname.endsWith(simpleName)) {
+ // WidgetSet module name does not match implementation name;
+ // probably inherited WidgetSet with entry-point. Skip.
+ GWT.log("Ignored init for " + wsname + " when starting " + module,
+ null);
+ return;
+ }
+
+ if (initedWidgetSet != null) {
+ // Something went wrong: multiple widgetsets inited
+ String msg = "Tried to init " + widgetset.getClass().getName()
+ + ", but " + initedWidgetSet.getClass().getName()
+ + " is already inited.";
+ System.err.println(msg);
+ throw new IllegalStateException(msg);
+ }
+ initedWidgetSet = widgetset;
ArrayList appIds = new ArrayList();
loadAppIdListFromDOM(appIds);