diff --git a/modules/gwtorganise/.settings/com.google.gwt.eclipse.core.prefs b/modules/gwtorganise/.settings/com.google.gwt.eclipse.core.prefs
index 661aaef1..7d6a4d40 100644
--- a/modules/gwtorganise/.settings/com.google.gwt.eclipse.core.prefs
+++ b/modules/gwtorganise/.settings/com.google.gwt.eclipse.core.prefs
@@ -1,4 +1,4 @@
-#Tue Jan 26 16:51:26 NZDT 2010
+#Thu Feb 11 15:27:06 NZDT 2010
eclipse.preferences.version=1
entryPointModules=
filesCopiedToWebInfLib=gwt-servlet.jar
diff --git a/modules/gwtorganise/helpers/gwtorganise_event.php b/modules/gwtorganise/helpers/gwtorganise_event.php
index 1259ac3b..15dbb70b 100644
--- a/modules/gwtorganise/helpers/gwtorganise_event.php
+++ b/modules/gwtorganise/helpers/gwtorganise_event.php
@@ -19,16 +19,13 @@
*/
class gwtorganise_event_Core{
- /**
- * adds the shopping basket administration controls to the admin menu
- */
- static function admin_menu($menu, $theme){
-
- $menu->add_after("users_groups",
- Menu::factory("link")
+ static function admin_menu($menu, $theme) {
+ $menu->add_after("dashboard",
+ Menu::factory("link")
->id("gwtorganise")
->label(t("GWT Organise"))
->url(url::site("admin/gwtorganise")));
}
+
}
diff --git a/modules/gwtorganise/src/com/gloopics/g3viewer/G3viewer.gwt.xml b/modules/gwtorganise/src/com/gloopics/g3viewer/G3viewer.gwt.xml
index 389a35ef..ef16872b 100644
--- a/modules/gwtorganise/src/com/gloopics/g3viewer/G3viewer.gwt.xml
+++ b/modules/gwtorganise/src/com/gloopics/g3viewer/G3viewer.gwt.xml
@@ -29,5 +29,5 @@
-
+
diff --git a/modules/gwtorganise/src/com/gloopics/g3viewer/client/Album.java b/modules/gwtorganise/src/com/gloopics/g3viewer/client/Album.java
index cb0be367..d3e96f9a 100644
--- a/modules/gwtorganise/src/com/gloopics/g3viewer/client/Album.java
+++ b/modules/gwtorganise/src/com/gloopics/g3viewer/client/Album.java
@@ -109,7 +109,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
updateValues(aValue);
}
- },false);
+ },false,true);
}
@@ -281,7 +281,7 @@ public class Album extends TreeItem {
m_View.getCurrentAlbum().expand();
m_View.getCurrentAlbum().select();
}
- },true);
+ },true,true);
}
/**
@@ -300,7 +300,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
m_View.getCurrentAlbum().select();
}
- },true);
+ },true,true);
}
@@ -331,7 +331,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
addAlbums(aValue);
}
- },false);
+ },false,true);
}
@@ -344,7 +344,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
viewAlbum(aValue);
}
- },false);
+ },false,true);
}
@@ -445,7 +445,7 @@ public class Album extends TreeItem {
}
}
}
- },false);
+ },false,true);
}
diff --git a/modules/gwtorganise/src/com/gloopics/g3viewer/client/AsyncResizer.java b/modules/gwtorganise/src/com/gloopics/g3viewer/client/AsyncResizer.java
index 03a7aaaf..20e1664a 100644
--- a/modules/gwtorganise/src/com/gloopics/g3viewer/client/AsyncResizer.java
+++ b/modules/gwtorganise/src/com/gloopics/g3viewer/client/AsyncResizer.java
@@ -30,29 +30,26 @@ public class AsyncResizer implements RunAsyncCallback{
Canvas upThumb = com.gloopics.g3viewer.client.canvas.Factory.getInstance().createCanvas();
upThumb.decode(m_Blob);
+ float imageWidth = (float)upThumb.getWidth();
+ float imageHeight = (float)upThumb.getHeight();
- int imageWidth = upThumb.getWidth();
- int imageHeight = upThumb.getHeight();
-
- int widthRatio = imageWidth/m_ResizeOptions.getMaxWidth();
- int heightRatio = imageHeight/m_ResizeOptions.getMaxHeight();
+ float widthRatio = imageWidth/((float)m_ResizeOptions.getMaxWidth());
+ float heightRatio = imageHeight/((float)m_ResizeOptions.getMaxHeight());
if (widthRatio > heightRatio){
if (widthRatio > 1) {
- upThumb.resize(m_ResizeOptions.getMaxWidth(), imageHeight / widthRatio );
+ upThumb.resize(m_ResizeOptions.getMaxWidth(), (int)(imageHeight / widthRatio) );
m_UploadFile.uploadBlob(upThumb.encode());
+ return;
}
}
else
{
if (heightRatio > 1){
- upThumb.resize(imageWidth / heightRatio, m_ResizeOptions.getMaxHeight());
+ upThumb.resize((int)(imageWidth / heightRatio), m_ResizeOptions.getMaxHeight());
m_UploadFile.uploadBlob(upThumb.encode());
+ return;
}
}
-
-
}
-
-
}
diff --git a/modules/gwtorganise/src/com/gloopics/g3viewer/client/G3Viewer.java b/modules/gwtorganise/src/com/gloopics/g3viewer/client/G3Viewer.java
index d520319b..58635bda 100644
--- a/modules/gwtorganise/src/com/gloopics/g3viewer/client/G3Viewer.java
+++ b/modules/gwtorganise/src/com/gloopics/g3viewer/client/G3Viewer.java
@@ -61,7 +61,9 @@ public class G3Viewer {
DockPanel dp = new DockPanel();
dp.addStyleName("error");
- dp.add(new HTML(error), DockPanel.CENTER);
+
+ error = error.replaceAll("<", "<").replaceAll(">", ">");
+ dp.add(new HTML("
" + error + "
"), DockPanel.CENTER);
// DialogBox is a SimplePanel, so you have to set its widget property to
@@ -154,7 +156,7 @@ public class G3Viewer {
/**
* the only dialog box
*/
- private final HttpDialogBox m_HttpDialogBox= new HttpDialogBox();
+ private final HttpDialogBox m_HttpDialogBox= new HttpDialogBox(this);
private class SimplePanelEx extends SimplePanel
{
@@ -275,7 +277,7 @@ public class G3Viewer {
}
});
}
- },false);
+ },false,true);
}
@@ -326,10 +328,16 @@ public class G3Viewer {
m_ImageDialogBox.doDialog( a_Url);
}
- public void doJSONRequest(final String a_URL, final HttpSuccessHandler a_Handler, final boolean a_hasParams){
+ public void doJSONRequest(final String a_URL, final HttpSuccessHandler a_Handler, final boolean a_hasParams, final boolean a_IncludeCSRF){
+ doJSONRequest(a_URL, a_Handler, a_hasParams, a_IncludeCSRF, "");
+ }
+
+
+ public void doJSONRequest(final String a_URL, final HttpSuccessHandler a_Handler, final boolean a_hasParams, final boolean a_IncludeCSRF,
+ String a_Data ){
try {
String url;
- if (m_CSRF != null)
+ if (m_CSRF != null && a_IncludeCSRF)
{
url = a_URL + (a_hasParams?"&csrf=":"?csrf=") + m_CSRF;
}
@@ -338,7 +346,9 @@ public class G3Viewer {
url = a_URL;
}
RequestBuilder requestBuilder = new RequestBuilder(
- RequestBuilder.GET, url);
+ RequestBuilder.POST, url);
+ requestBuilder.setHeader("Content-Type", "application/x-www-form-urlencoded");
+ requestBuilder.setHeader("X-Requested-With", "XMLHttpRequest");
requestBuilder.setCallback(new JSONResponseTextHandler(
new JSONResponseCallback() {
@@ -370,6 +380,7 @@ public class G3Viewer {
}}
));
+ requestBuilder.setRequestData(a_Data);
requestBuilder.send();
} catch (RequestException ex) {
displayError("Request Exception", ex.toString() + " - " + a_URL);
diff --git a/modules/gwtorganise/src/com/gloopics/g3viewer/client/HttpDialogBox.java b/modules/gwtorganise/src/com/gloopics/g3viewer/client/HttpDialogBox.java
index b40cfc34..cba7ba37 100644
--- a/modules/gwtorganise/src/com/gloopics/g3viewer/client/HttpDialogBox.java
+++ b/modules/gwtorganise/src/com/gloopics/g3viewer/client/HttpDialogBox.java
@@ -8,8 +8,11 @@ import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
-import com.google.gwt.http.client.RequestTimeoutException;
import com.google.gwt.http.client.Response;
+import com.google.gwt.json.client.JSONObject;
+import com.google.gwt.json.client.JSONValue;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
@@ -17,8 +20,6 @@ import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
-import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
public class HttpDialogBox extends DialogBox{
@@ -27,8 +28,10 @@ public class HttpDialogBox extends DialogBox{
private HttpDialogHandler m_Callback;
private final HTML m_Dialog;
+ private final G3Viewer m_Parent;
- public HttpDialogBox(){
+ public HttpDialogBox(G3Viewer a_Parent){
+ m_Parent = a_Parent;
m_Dialog = new HTML("Empty");
initComponents();
}
@@ -54,12 +57,9 @@ public class HttpDialogBox extends DialogBox{
public void onClick(ClickEvent event) {
if (m_FormPanel!=null)
{
- m_FormPanel.submit();
- }
- else
- {
-
+ submitForm();
}
+
HttpDialogBox.this.hide();
Loading.getInstance().loading("Please Wait..");
}
@@ -88,11 +88,6 @@ public class HttpDialogBox extends DialogBox{
}
public void onError(Request request, Throwable exception) {
- if (exception instanceof RequestTimeoutException) {
- // handle a request timeout
- } else {
- // handle other request errors
- }
showDialog("Could not get " + m_URL + " Exception thrown " + exception.toString());
}
@@ -101,11 +96,113 @@ public class HttpDialogBox extends DialogBox{
showDialog(response.getText());
} else {
showDialog(m_URL + response.getText());
- // handle non-OK response from the server
}
}
}
+
+ public native static String createData(Element form) /*-{
+
+ var fieldValue = function(el, successful) {
+ var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
+ if (typeof successful == 'undefined') successful = true;
+ if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
+ (t == 'checkbox' || t == 'radio') && !el.checked ||
+ (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
+ tag == 'select' && el.selectedIndex == -1))
+ return null;
+
+ if (tag == 'select') {
+ var index = el.selectedIndex;
+ if (index < 0) return null;
+ var a = [], ops = el.options;
+ var one = (t == 'select-one');
+ var max = (one ? index+1 : ops.length);
+ for(var i=(one ? index : 0); i < max; i++) {
+ var op = ops[i];
+ if (op.selected) {
+ var v = op.value;
+ if (!v) // extra pain for IE...
+ v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
+ if (one) return v;
+ a.push(v);
+ }
+ }
+ return a;
+ }
+ return el.value;
+ };
+
+
+ var a = "";
+ var added = false;
+ var appendA = function(str)
+ {
+ if(added)
+ {
+ a = a+"&"+str;
+ }
+ else
+ {
+ a = a+str;
+ added = true;
+ }
+ }
+
+ var els = form.getElementsByTagName('*'); //: form.elements;
+ if (!els) return a;
+ for(var i=0, max=els.length; i < max; i++) {
+ var el = els[i];
+ var n = el.name;
+ if (!n) continue;
+
+ var v = fieldValue(el, true);
+ if (v && v.constructor == Array) {
+ for(var j=0, jmax=v.length; j < jmax; j++)
+ appendA(n+"="+escape(v[j]));
+ }
+ else if (v !== null && typeof v != 'undefined')
+ appendA(n+"="+escape(v));
+ }
+
+ return a;
+
+ }-*/;
+
+ private void submitForm(){
+ String url = m_FormPanel.getAction();
+
+ String data = createData(m_FormPanel.getElement());
+
+ m_Parent.doJSONRequest(url, new HttpSuccessHandler() {
+
+ @Override
+ public void success(JSONValue aValue) {
+ JSONObject object = aValue.isObject();
+ if (object != null){
+ JSONValue result = object.get("result");
+ if (result != null)
+ {
+ if (result.isString().stringValue().equals("success")){
+ m_Callback.success(aValue.toString());
+ Loading.getInstance().endLoading();
+ }
+ else{
+ JSONValue resul = object.get("form");
+ showDialog(resul.isString().stringValue());
+ }
+ }
+ else
+ {
+ G3Viewer.displayError("result was null ", aValue.toString() );
+ }
+ } else {
+ G3Viewer.displayError("Only JSON Value Returned ", aValue.toString() );
+ }
+ }
+ }, false ,false, data);
+ }
+
private void showDialog(String a_Text){
m_Dialog.setHTML(a_Text);
@@ -132,27 +229,49 @@ public class HttpDialogBox extends DialogBox{
Element element = this.getElement().getElementsByTagName("form").getItem(0);
setText(element.getElementsByTagName("legend").getItem(0).getInnerText());
-
m_FormPanel = FormPanel.wrap(element, true);
- m_FormPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
-
- @Override
- public void onSubmitComplete(SubmitCompleteEvent event) {
- m_Callback.success(event.getResults());
- Loading.getInstance().endLoading();
- }
- });
-
}
else
{
setText(this.getElement().getElementsByTagName("legend").getItem(0).getInnerText());
+ m_FormPanel = null;
}
-
+
setPopupPosition(Window.getClientWidth() / 2 - this.getOffsetWidth() / 2,
Window.getClientHeight() / 2 - this.getOffsetHeight() / 2);
+
+ Timer t = new Timer(){
+ public void run(){
+
+ // find any scripts if they exist
+ NodeList scripts = HttpDialogBox.this.getElement().getElementsByTagName("script");
+ for (int i = 0; i < scripts.getLength(); i++ )
+ {
+ Element script = scripts.getItem(i);
+ script.removeFromParent();
+ Element nscript = DOM.createElement("script");
+ nscript.setAttribute("type", script.getAttribute("type"));
+ nscript.setAttribute("src", script.getAttribute("src"));
+
+ getElementByTagName("head").appendChild(nscript);
+ }
+
+ }
+ };
+ t.schedule(10);
}
+ /**
+ * Gets an element by its tag name; handy for single elements like HTML,
+ * HEAD, BODY.
+ * @param tagName The name of the tag.
+ * @return The element with that tag name.
+ */
+ public native static Element getElementByTagName(String tagName) /*-{
+ var elem = $doc.getElementsByTagName(tagName);
+ return elem ? elem[0] : null;
+ }-*/;
+
public void doDialog(String url, HttpDialogHandler a_Callback){
m_Callback = a_Callback;
Loading.getInstance().loading("Please Wait");
diff --git a/modules/gwtorganise/src/com/gloopics/g3viewer/client/Item.java b/modules/gwtorganise/src/com/gloopics/g3viewer/client/Item.java
index 46119aa9..7584d5cf 100644
--- a/modules/gwtorganise/src/com/gloopics/g3viewer/client/Item.java
+++ b/modules/gwtorganise/src/com/gloopics/g3viewer/client/Item.java
@@ -181,7 +181,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
updateValues(aValue);
}
- },false);
+ },false,true);
}
@@ -255,7 +255,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
// nothing to do
}
- },false);
+ },false,true);
popupPanel.hide();
}
});
@@ -273,7 +273,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
updateImages(aValue);
}
- },false);
+ },false,true);
popupPanel.hide();
}
});
@@ -289,7 +289,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
updateImages(aValue);
}
- },false);
+ },false,true);
popupPanel.hide();
}
});
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/G3viewer.gwt.xml b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/G3viewer.gwt.xml
index 389a35ef..ef16872b 100644
--- a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/G3viewer.gwt.xml
+++ b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/G3viewer.gwt.xml
@@ -29,5 +29,5 @@
-
+
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Album.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Album.class
index ee9e0a6e..446ea888 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Album.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Album.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/AsyncResizer.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/AsyncResizer.class
index 392ed4f2..b2b5ef95 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/AsyncResizer.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/AsyncResizer.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1$1.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1$1.class
index 28ec08b1..974ffb20 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1$1.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1$1.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1.class
index 3b9c4601..fc9150c9 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$1.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$2.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$2.class
index b7fe6c19..09f1e6f3 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$2.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$2.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog$1.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog$1.class
index 7075faa5..0f5543f3 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog$1.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog$1.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog.class
index f2b3519f..53229a4b 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$ErrorDialog.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$SimplePanelEx.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$SimplePanelEx.class
index d54caa33..28e561c5 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$SimplePanelEx.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer$SimplePanelEx.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer.class
index a7ce7a58..80b9edd2 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/G3Viewer.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$1.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$1.class
index a872cfc3..4ed4f519 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$1.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$1.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$2.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$2.class
index 620a5286..8c3e64a4 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$2.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$2.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$3.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$3.class
index 454e2fe2..ceeea965 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$3.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$3.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$4.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$4.class
new file mode 100644
index 00000000..f95b24c9
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$4.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$RequestCallbackImpl.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$RequestCallbackImpl.class
index 7d9a5c74..7d13cf22 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$RequestCallbackImpl.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox$RequestCallbackImpl.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox.class
index 18bd62d6..7d9c98ed 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/HttpDialogBox.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$6.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$6.class
index 5d43e6be..1c12b2b5 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$6.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$6.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$7.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$7.class
index c02cd8b3..91d252ba 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$7.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$7.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$8.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$8.class
index 9a4a1041..874ac3ea 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$8.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item$8.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item.class b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item.class
index 3d90297b..6eadd6ca 100644
Binary files a/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item.class and b/modules/gwtorganise/war/WEB-INF/classes/com/gloopics/g3viewer/client/Item.class differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/appengine-api-1.0-sdk-1.2.5.jar b/modules/gwtorganise/war/WEB-INF/lib/appengine-api-1.0-sdk-1.2.5.jar
new file mode 100644
index 00000000..5e461a1b
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/appengine-api-1.0-sdk-1.2.5.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/appengine-api-labs-1.2.5.jar b/modules/gwtorganise/war/WEB-INF/lib/appengine-api-labs-1.2.5.jar
new file mode 100644
index 00000000..5325404d
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/appengine-api-labs-1.2.5.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/datanucleus-appengine-1.0.3.jar b/modules/gwtorganise/war/WEB-INF/lib/datanucleus-appengine-1.0.3.jar
new file mode 100644
index 00000000..fa0773db
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/datanucleus-appengine-1.0.3.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/datanucleus-core-1.1.5.jar b/modules/gwtorganise/war/WEB-INF/lib/datanucleus-core-1.1.5.jar
new file mode 100644
index 00000000..c450ab94
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/datanucleus-core-1.1.5.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar b/modules/gwtorganise/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar
new file mode 100644
index 00000000..c326e0bc
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar b/modules/gwtorganise/war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar
new file mode 100644
index 00000000..12d4ab0d
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar b/modules/gwtorganise/war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar
new file mode 100644
index 00000000..ee9963df
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/gwt-servlet.jar b/modules/gwtorganise/war/WEB-INF/lib/gwt-servlet.jar
new file mode 100644
index 00000000..50e2a81c
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/gwt-servlet.jar differ
diff --git a/modules/gwtorganise/war/WEB-INF/lib/jdo2-api-2.3-eb.jar b/modules/gwtorganise/war/WEB-INF/lib/jdo2-api-2.3-eb.jar
new file mode 100644
index 00000000..2547a0b0
Binary files /dev/null and b/modules/gwtorganise/war/WEB-INF/lib/jdo2-api-2.3-eb.jar differ
diff --git a/modules/gwtorganise/war/g3viewer/0031994593072F3F8665BB367C2904F3.cache.html b/modules/gwtorganise/war/g3viewer/0031994593072F3F8665BB367C2904F3.cache.html
deleted file mode 100644
index 198faab1..00000000
--- a/modules/gwtorganise/war/g3viewer/0031994593072F3F8665BB367C2904F3.cache.html
+++ /dev/null
@@ -1,1839 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/00989C656651F0D5EE0AC3B1C0DB9F09.cache.html b/modules/gwtorganise/war/g3viewer/00989C656651F0D5EE0AC3B1C0DB9F09.cache.html
new file mode 100644
index 00000000..6f26cf2b
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/00989C656651F0D5EE0AC3B1C0DB9F09.cache.html
@@ -0,0 +1,1848 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/1C6EF2263B95B70FEFB69075540C8FAC.cache.html b/modules/gwtorganise/war/g3viewer/1C6EF2263B95B70FEFB69075540C8FAC.cache.html
new file mode 100644
index 00000000..53764b69
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/1C6EF2263B95B70FEFB69075540C8FAC.cache.html
@@ -0,0 +1,1820 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/2625E6CD0659684104018A069A188996.cache.html b/modules/gwtorganise/war/g3viewer/2625E6CD0659684104018A069A188996.cache.html
deleted file mode 100644
index 319f475f..00000000
--- a/modules/gwtorganise/war/g3viewer/2625E6CD0659684104018A069A188996.cache.html
+++ /dev/null
@@ -1,1811 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/2CA9529BA3D2A8BF52BC74B8758F03DD.cache.html b/modules/gwtorganise/war/g3viewer/2CA9529BA3D2A8BF52BC74B8758F03DD.cache.html
new file mode 100644
index 00000000..f6a4ab45
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/2CA9529BA3D2A8BF52BC74B8758F03DD.cache.html
@@ -0,0 +1,1816 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/4FEE434A493BF0E4969DA18CF936A5FD.cache.html b/modules/gwtorganise/war/g3viewer/4FEE434A493BF0E4969DA18CF936A5FD.cache.html
deleted file mode 100644
index e24602d9..00000000
--- a/modules/gwtorganise/war/g3viewer/4FEE434A493BF0E4969DA18CF936A5FD.cache.html
+++ /dev/null
@@ -1,1807 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/5DDD50A96AC2DC41C6BF0EB870994C49.cache.html b/modules/gwtorganise/war/g3viewer/5DDD50A96AC2DC41C6BF0EB870994C49.cache.html
deleted file mode 100644
index 1f4fd91f..00000000
--- a/modules/gwtorganise/war/g3viewer/5DDD50A96AC2DC41C6BF0EB870994C49.cache.html
+++ /dev/null
@@ -1,1793 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/8E9AF58E0E2BDFC35328028FC368ECD2.cache.html b/modules/gwtorganise/war/g3viewer/8E9AF58E0E2BDFC35328028FC368ECD2.cache.html
deleted file mode 100644
index dbce1394..00000000
--- a/modules/gwtorganise/war/g3viewer/8E9AF58E0E2BDFC35328028FC368ECD2.cache.html
+++ /dev/null
@@ -1,1834 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/905F76789A7E0B9ACA517C854153BBE0.cache.html b/modules/gwtorganise/war/g3viewer/905F76789A7E0B9ACA517C854153BBE0.cache.html
new file mode 100644
index 00000000..0b37e54d
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/905F76789A7E0B9ACA517C854153BBE0.cache.html
@@ -0,0 +1,1843 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/9DDA675D3D2BA7BAD28770635C23097F.cache.html b/modules/gwtorganise/war/g3viewer/9DDA675D3D2BA7BAD28770635C23097F.cache.html
new file mode 100644
index 00000000..bb182b75
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/9DDA675D3D2BA7BAD28770635C23097F.cache.html
@@ -0,0 +1,1802 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/D46C6991F70043F942032A2954A64834.cache.html b/modules/gwtorganise/war/g3viewer/D46C6991F70043F942032A2954A64834.cache.html
new file mode 100644
index 00000000..f86c8e32
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/D46C6991F70043F942032A2954A64834.cache.html
@@ -0,0 +1,1844 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/F0ACC41901D1A45069B29563B600C0E1.cache.html b/modules/gwtorganise/war/g3viewer/F0ACC41901D1A45069B29563B600C0E1.cache.html
deleted file mode 100644
index 9cf0edc6..00000000
--- a/modules/gwtorganise/war/g3viewer/F0ACC41901D1A45069B29563B600C0E1.cache.html
+++ /dev/null
@@ -1,1835 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/0031994593072F3F8665BB367C2904F3/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/0031994593072F3F8665BB367C2904F3/1.cache.js
deleted file mode 100644
index 28aba6f0..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/0031994593072F3F8665BB367C2904F3/1.cache.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function sS(){}
-function ES(){return dP}
-function IS(){var a;while(xS){a=xS;xS=xS.c;!xS&&(yS=null);qo(a.b)}}
-function FS(){AS=true;zS=(CS(),new sS);jy((gy(),fy),1);!!$stats&&$stats(Py(irb,kib,null,null));zS.ac();!!$stats&&$stats(Py(irb,jrb,null,null))}
-function qo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(hrb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));fv(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);fv(a.d,e.encode())}}}
-var krb='AsyncLoader1',hrb='beta.canvas',irb='runCallbacks1';_=sS.prototype=new tS;_.gC=ES;_.ac=IS;_.tI=0;var dP=P3(Xob,krb);FS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/0031994593072F3F8665BB367C2904F3/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/0031994593072F3F8665BB367C2904F3/2.cache.js
deleted file mode 100644
index f801762e..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/0031994593072F3F8665BB367C2904F3/2.cache.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function ry(){my(fy)}
-function my(a){jy(a,a.e)}
-function jy(a,b){var c;c=b==a.e?iib:jib+b;oy(c,jrb,O4(b),null);if(ly(a,b)){Ay(a.f);Y6(a.b,O4(b));qy(a)}}
-var jrb='end';ry();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/00989C656651F0D5EE0AC3B1C0DB9F09/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/00989C656651F0D5EE0AC3B1C0DB9F09/1.cache.js
new file mode 100644
index 00000000..90e9f819
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/00989C656651F0D5EE0AC3B1C0DB9F09/1.cache.js
@@ -0,0 +1,6 @@
+function JS(){}
+function VS(){return uP}
+function ZS(){var a;while(OS){a=OS;OS=OS.c;!OS&&(PS=null);ro(a.b)}}
+function WS(){RS=true;QS=(TS(),new JS);ty((qy(),py),1);!!$stats&&$stats(Zy(Yrb,Zib,null,null));QS.ac();!!$stats&&$stats(Zy(Yrb,Zrb,null,null))}
+function ro(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Xrb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));zv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);zv(a.d,e.encode());return}}}
+var $rb='AsyncLoader1',Xrb='beta.canvas',Yrb='runCallbacks1';_=JS.prototype=new KS;_.gC=VS;_.ac=ZS;_.tI=0;var uP=_3(Lpb,$rb);WS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/00989C656651F0D5EE0AC3B1C0DB9F09/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/00989C656651F0D5EE0AC3B1C0DB9F09/2.cache.js
new file mode 100644
index 00000000..2e398160
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/00989C656651F0D5EE0AC3B1C0DB9F09/2.cache.js
@@ -0,0 +1,4 @@
+function By(){wy(py)}
+function wy(a){ty(a,a.e)}
+function ty(a,b){var c;c=b==a.e?Xib:Yib+b;yy(c,Zrb,$4(b),null);if(vy(a,b)){Ky(a.f);k7(a.b,$4(b));Ay(a)}}
+var Zrb='end';By();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/1C6EF2263B95B70FEFB69075540C8FAC/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/1C6EF2263B95B70FEFB69075540C8FAC/1.cache.js
new file mode 100644
index 00000000..5503e66b
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/1C6EF2263B95B70FEFB69075540C8FAC/1.cache.js
@@ -0,0 +1,6 @@
+function qS(){}
+function CS(){return dP}
+function GS(){var a;while(vS){a=vS;vS=vS.c;!vS&&(wS=null);ko(a.b)}}
+function DS(){yS=true;xS=(AS(),new qS);my((jy(),iy),1);!!$stats&&$stats(Sy(irb,oib,null,null));xS.Zb();!!$stats&&$stats(Sy(irb,jrb,null,null))}
+function ko(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(hrb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));sv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);sv(a.d,e.encode());return}}}
+var krb='AsyncLoader1',hrb='beta.canvas',irb='runCallbacks1';_=qS.prototype=new rS;_.gC=CS;_.Zb=GS;_.tI=0;var dP=q3(Zob,krb);DS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/1C6EF2263B95B70FEFB69075540C8FAC/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/1C6EF2263B95B70FEFB69075540C8FAC/2.cache.js
new file mode 100644
index 00000000..4857f9e3
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/1C6EF2263B95B70FEFB69075540C8FAC/2.cache.js
@@ -0,0 +1,4 @@
+function uy(){py(iy)}
+function py(a){my(a,a.e)}
+function my(a,b){var c;c=b==a.e?mib:nib+b;ry(c,jrb,p4(b),null);if(oy(a,b)){Dy(a.f);B6(a.b,p4(b));ty(a)}}
+var jrb='end';uy();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/2625E6CD0659684104018A069A188996/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/2625E6CD0659684104018A069A188996/1.cache.js
deleted file mode 100644
index a0015130..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/2625E6CD0659684104018A069A188996/1.cache.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _R(){}
-function lS(){return OO}
-function pS(){var a;while(eS){a=eS;eS=eS.c;!eS&&(fS=null);jo(a.b)}}
-function mS(){hS=true;gS=(jS(),new _R);cy((_x(),$x),1);!!$stats&&$stats(Iy(uqb,Bhb,null,null));gS.Zb();!!$stats&&$stats(Iy(uqb,vqb,null,null))}
-function jo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(tqb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));$u(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);$u(a.d,e.encode())}}}
-var wqb='AsyncLoader1',tqb='beta.canvas',uqb='runCallbacks1';_=_R.prototype=new aS;_.gC=lS;_.Zb=pS;_.tI=0;var OO=e3(job,wqb);mS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/2625E6CD0659684104018A069A188996/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/2625E6CD0659684104018A069A188996/2.cache.js
deleted file mode 100644
index 4b86a30d..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/2625E6CD0659684104018A069A188996/2.cache.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function ky(){fy($x)}
-function fy(a){cy(a,a.e)}
-function cy(a,b){var c;c=b==a.e?zhb:Ahb+b;hy(c,vqb,d4(b),null);if(ey(a,b)){ty(a.f);n6(a.b,d4(b));jy(a)}}
-var vqb='end';ky();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/2CA9529BA3D2A8BF52BC74B8758F03DD/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/2CA9529BA3D2A8BF52BC74B8758F03DD/1.cache.js
new file mode 100644
index 00000000..af75da18
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/2CA9529BA3D2A8BF52BC74B8758F03DD/1.cache.js
@@ -0,0 +1,6 @@
+function yS(){}
+function KS(){return gP}
+function OS(){var a;while(DS){a=DS;DS=DS.b;!DS&&(ES=null);jo(a.a)}}
+function LS(){GS=true;FS=(IS(),new yS);ny((ky(),jy),1);!!$stats&&$stats(Ty(Urb,Nib,null,null));FS.Zb();!!$stats&&$stats(Ty(Urb,Vrb,null,null))}
+function jo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Trb);e.decode(a.a);d=e.width;c=e.height;f=d/a.b.b;b=c/a.b.a;if(f>b){if(f>1){e.resize(a.b.b,~~Math.max(Math.min(c/f,2147483647),-2147483648));qv(a.c,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.b.a);qv(a.c,e.encode());return}}}
+var Wrb='AsyncLoader1',Trb='beta.canvas',Urb='runCallbacks1';_=yS.prototype=new zS;_.gC=KS;_.Zb=OS;_.tI=0;var gP=W3(Dpb,Wrb);LS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/2CA9529BA3D2A8BF52BC74B8758F03DD/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/2CA9529BA3D2A8BF52BC74B8758F03DD/2.cache.js
new file mode 100644
index 00000000..4ac4c05f
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/2CA9529BA3D2A8BF52BC74B8758F03DD/2.cache.js
@@ -0,0 +1,4 @@
+function vy(){qy(jy)}
+function qy(a){ny(a,a.d)}
+function ny(a,b){var c;c=b==a.d?Lib:Mib+b;sy(c,Vrb,V4(b),null);if(py(a,b)){Ey(a.e);e7(a.a,V4(b));uy(a)}}
+var Vrb='end';vy();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/4FEE434A493BF0E4969DA18CF936A5FD/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/4FEE434A493BF0E4969DA18CF936A5FD/1.cache.js
deleted file mode 100644
index 219b13b4..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/4FEE434A493BF0E4969DA18CF936A5FD/1.cache.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function hS(){}
-function tS(){return RO}
-function xS(){var a;while(mS){a=mS;mS=mS.b;!mS&&(nS=null);io(a.a)}}
-function uS(){pS=true;oS=(rS(),new hS);dy((ay(),_x),1);!!$stats&&$stats(Jy(erb,$hb,null,null));oS.Zb();!!$stats&&$stats(Jy(erb,frb,null,null))}
-function io(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(drb);e.decode(a.a);d=e.width;c=e.height;f=~~(d/a.b.b);b=~~(c/a.b.a);if(f>b){if(f>1){e.resize(a.b.b,~~(c/f));Yu(a.c,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.b.a);Yu(a.c,e.encode())}}}
-var grb='AsyncLoader1',drb='beta.canvas',erb='runCallbacks1';_=hS.prototype=new iS;_.gC=tS;_.Zb=xS;_.tI=0;var RO=K3(Pob,grb);uS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/4FEE434A493BF0E4969DA18CF936A5FD/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/4FEE434A493BF0E4969DA18CF936A5FD/2.cache.js
deleted file mode 100644
index 6cb0eb93..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/4FEE434A493BF0E4969DA18CF936A5FD/2.cache.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function ly(){gy(_x)}
-function gy(a){dy(a,a.d)}
-function dy(a,b){var c;c=b==a.d?Yhb:Zhb+b;iy(c,frb,J4(b),null);if(fy(a,b)){uy(a.e);S6(a.a,J4(b));ky(a)}}
-var frb='end';ly();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/5DDD50A96AC2DC41C6BF0EB870994C49/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/5DDD50A96AC2DC41C6BF0EB870994C49/1.cache.js
deleted file mode 100644
index dc57ad14..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/5DDD50A96AC2DC41C6BF0EB870994C49/1.cache.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function YR(){}
-function iS(){return MO}
-function mS(){var a;while(bS){a=bS;bS=bS.c;!bS&&(cS=null);io(a.b)}}
-function jS(){eS=true;dS=(gS(),new YR);ay((Zx(),Yx),1);!!$stats&&$stats(Gy(cqb,nhb,null,null));dS.$b();!!$stats&&$stats(Gy(cqb,dqb,null,null))}
-function io(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(bqb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));Yu(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);Yu(a.d,e.encode())}}}
-var eqb='AsyncLoader1',bqb='beta.canvas',cqb='runCallbacks1';_=YR.prototype=new ZR;_.gC=iS;_.$b=mS;_.tI=0;var MO=R2(Unb,eqb);jS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/5DDD50A96AC2DC41C6BF0EB870994C49/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/5DDD50A96AC2DC41C6BF0EB870994C49/2.cache.js
deleted file mode 100644
index 304e5f17..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/5DDD50A96AC2DC41C6BF0EB870994C49/2.cache.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function iy(){dy(Yx)}
-function dy(a){ay(a,a.e)}
-function ay(a,b){var c;c=b==a.e?lhb:mhb+b;fy(c,dqb,Q3(b),null);if(cy(a,b)){ry(a.f);_5(a.b,Q3(b));hy(a)}}
-var dqb='end';iy();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/8E9AF58E0E2BDFC35328028FC368ECD2/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/8E9AF58E0E2BDFC35328028FC368ECD2/1.cache.js
deleted file mode 100644
index c628482d..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/8E9AF58E0E2BDFC35328028FC368ECD2/1.cache.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function zS(){}
-function LS(){return fP}
-function PS(){var a;while(ES){a=ES;ES=ES.b;!ES&&(FS=null);ko(a.a)}}
-function MS(){HS=true;GS=(JS(),new zS);gy((dy(),cy),1);!!$stats&&$stats(My(zsb,Oib,null,null));GS.Zb();!!$stats&&$stats(My(zsb,Asb,null,null))}
-function ko(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(ysb);e.decode(a.a);d=e.width;c=e.height;f=~~(d/a.b.b);b=~~(c/a.b.a);if(f>b){if(f>1){e.resize(a.b.b,~~(c/f));$u(a.c,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.b.a);$u(a.c,e.encode())}}}
-var Bsb='AsyncLoader1',ysb='beta.canvas',zsb='runCallbacks1';_=zS.prototype=new AS;_.gC=LS;_.Zb=PS;_.tI=0;var fP=z4(gqb,Bsb);MS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/8E9AF58E0E2BDFC35328028FC368ECD2/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/8E9AF58E0E2BDFC35328028FC368ECD2/2.cache.js
deleted file mode 100644
index 22bb2db7..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/8E9AF58E0E2BDFC35328028FC368ECD2/2.cache.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function oy(){jy(cy)}
-function jy(a){gy(a,a.d)}
-function gy(a,b){var c;c=b==a.d?Mib:Nib+b;ly(c,Asb,y5(b),null);if(iy(a,b)){xy(a.e);H7(a.a,y5(b));ny(a)}}
-var Asb='end';oy();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/905F76789A7E0B9ACA517C854153BBE0/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/905F76789A7E0B9ACA517C854153BBE0/1.cache.js
new file mode 100644
index 00000000..b3260b3e
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/905F76789A7E0B9ACA517C854153BBE0/1.cache.js
@@ -0,0 +1,6 @@
+function QS(){}
+function aT(){return wP}
+function eT(){var a;while(VS){a=VS;VS=VS.b;!VS&&(WS=null);lo(a.a)}}
+function bT(){YS=true;XS=($S(),new QS);qy((ny(),my),1);!!$stats&&$stats(Wy(ntb,Bjb,null,null));XS.Zb();!!$stats&&$stats(Wy(ntb,otb,null,null))}
+function lo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(mtb);e.decode(a.a);d=e.width;c=e.height;f=d/a.b.b;b=c/a.b.a;if(f>b){if(f>1){e.resize(a.b.b,~~Math.max(Math.min(c/f,2147483647),-2147483648));sv(a.c,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.b.a);sv(a.c,e.encode());return}}}
+var ptb='AsyncLoader1',mtb='beta.canvas',ntb='runCallbacks1';_=QS.prototype=new RS;_.gC=aT;_.Zb=eT;_.tI=0;var wP=L4(Wqb,ptb);bT();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/905F76789A7E0B9ACA517C854153BBE0/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/905F76789A7E0B9ACA517C854153BBE0/2.cache.js
new file mode 100644
index 00000000..b173bd76
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/905F76789A7E0B9ACA517C854153BBE0/2.cache.js
@@ -0,0 +1,4 @@
+function yy(){ty(my)}
+function ty(a){qy(a,a.d)}
+function qy(a,b){var c;c=b==a.d?zjb:Ajb+b;vy(c,otb,K5(b),null);if(sy(a,b)){Hy(a.e);V7(a.a,K5(b));xy(a)}}
+var otb='end';yy();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/9DDA675D3D2BA7BAD28770635C23097F/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/9DDA675D3D2BA7BAD28770635C23097F/1.cache.js
new file mode 100644
index 00000000..85e1b1b9
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/9DDA675D3D2BA7BAD28770635C23097F/1.cache.js
@@ -0,0 +1,6 @@
+function nS(){}
+function zS(){return bP}
+function DS(){var a;while(sS){a=sS;sS=sS.c;!sS&&(tS=null);jo(a.b)}}
+function AS(){vS=true;uS=(xS(),new nS);ky((hy(),gy),1);!!$stats&&$stats(Qy(Sqb,aib,null,null));uS.$b();!!$stats&&$stats(Qy(Sqb,Tqb,null,null))}
+function jo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Rqb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));qv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);qv(a.d,e.encode());return}}}
+var Uqb='AsyncLoader1',Rqb='beta.canvas',Sqb='runCallbacks1';_=nS.prototype=new oS;_.gC=zS;_.$b=DS;_.tI=0;var bP=b3(Iob,Uqb);AS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/9DDA675D3D2BA7BAD28770635C23097F/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/9DDA675D3D2BA7BAD28770635C23097F/2.cache.js
new file mode 100644
index 00000000..07ecb512
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/9DDA675D3D2BA7BAD28770635C23097F/2.cache.js
@@ -0,0 +1,4 @@
+function sy(){ny(gy)}
+function ny(a){ky(a,a.e)}
+function ky(a,b){var c;c=b==a.e?$hb:_hb+b;py(c,Tqb,a4(b),null);if(my(a,b)){By(a.f);n6(a.b,a4(b));ry(a)}}
+var Tqb='end';sy();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/D46C6991F70043F942032A2954A64834/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/D46C6991F70043F942032A2954A64834/1.cache.js
new file mode 100644
index 00000000..cb270fb8
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/D46C6991F70043F942032A2954A64834/1.cache.js
@@ -0,0 +1,6 @@
+function QS(){}
+function aT(){return AP}
+function eT(){var a;while(VS){a=VS;VS=VS.c;!VS&&(WS=null);qo(a.b)}}
+function bT(){YS=true;XS=($S(),new QS);ry((oy(),ny),1);!!$stats&&$stats(Xy(Xrb,Wib,null,null));XS.cc();!!$stats&&$stats(Xy(Xrb,Yrb,null,null))}
+function qo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Wrb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));xv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);xv(a.d,e.encode());return}}}
+var Zrb='AsyncLoader1',Wrb='beta.canvas',Xrb='runCallbacks1';_=QS.prototype=new RS;_.gC=aT;_.cc=eT;_.tI=0;var AP=b4(Jpb,Zrb);bT();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/D46C6991F70043F942032A2954A64834/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/D46C6991F70043F942032A2954A64834/2.cache.js
new file mode 100644
index 00000000..b818c604
--- /dev/null
+++ b/modules/gwtorganise/war/g3viewer/deferredjs/D46C6991F70043F942032A2954A64834/2.cache.js
@@ -0,0 +1,4 @@
+function zy(){uy(ny)}
+function uy(a){ry(a,a.e)}
+function ry(a,b){var c;c=b==a.e?Uib:Vib+b;wy(c,Yrb,a5(b),null);if(ty(a,b)){Iy(a.f);m7(a.b,a5(b));yy(a)}}
+var Yrb='end';zy();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/F0ACC41901D1A45069B29563B600C0E1/1.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/F0ACC41901D1A45069B29563B600C0E1/1.cache.js
deleted file mode 100644
index f4c58224..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/F0ACC41901D1A45069B29563B600C0E1/1.cache.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function zS(){}
-function LS(){return jP}
-function PS(){var a;while(ES){a=ES;ES=ES.c;!ES&&(FS=null);po(a.b)}}
-function MS(){HS=true;GS=(JS(),new zS);hy((ey(),dy),1);!!$stats&&$stats(Ny(hrb,hib,null,null));GS.cc();!!$stats&&$stats(Ny(hrb,irb,null,null))}
-function po(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(grb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));dv(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);dv(a.d,e.encode())}}}
-var jrb='AsyncLoader1',grb='beta.canvas',hrb='runCallbacks1';_=zS.prototype=new AS;_.gC=LS;_.cc=PS;_.tI=0;var jP=R3(Vob,jrb);MS();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/deferredjs/F0ACC41901D1A45069B29563B600C0E1/2.cache.js b/modules/gwtorganise/war/g3viewer/deferredjs/F0ACC41901D1A45069B29563B600C0E1/2.cache.js
deleted file mode 100644
index 35b948e8..00000000
--- a/modules/gwtorganise/war/g3viewer/deferredjs/F0ACC41901D1A45069B29563B600C0E1/2.cache.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function py(){ky(dy)}
-function ky(a){hy(a,a.e)}
-function hy(a,b){var c;c=b==a.e?fib:gib+b;my(c,irb,Q4(b),null);if(jy(a,b)){yy(a.f);$6(a.b,Q4(b));oy(a)}}
-var irb='end';py();
\ No newline at end of file
diff --git a/modules/gwtorganise/war/g3viewer/g3viewer.nocache.js b/modules/gwtorganise/war/g3viewer/g3viewer.nocache.js
index c70e2b26..7921313b 100644
--- a/modules/gwtorganise/war/g3viewer/g3viewer.nocache.js
+++ b/modules/gwtorganise/war/g3viewer/g3viewer.nocache.js
@@ -1,4 +1,4 @@
-function g3viewer(){var M='',nb='" for "gwt:onLoadErrorFn"',lb='" for "gwt:onPropertyErrorFn"',Y='"><\/script>',$='#',Wb='.cache.html',ab='/',Lb='0031994593072F3F8665BB367C2904F3',Mb='063AB00068E7F94442F89D1B4262AD00',Nb='2625E6CD0659684104018A069A188996',Ob='36CF5446615AAE9D0FDDA0B123643155',Pb='373CE923F09A0C2270E1B0F2D934E253',Qb='4FEE434A493BF0E4969DA18CF936A5FD',Rb='5DDD50A96AC2DC41C6BF0EB870994C49',Sb='6B11280F72B8881FCDF44A0B47F1E96A',Tb='8E9AF58E0E2BDFC35328028FC368ECD2',gc='