Browse Source

System errors, UIDL.XML fix, made console static, allow html in debug windows messages, clickin error icon prints error to console

svn changeset:2276/svn branch:trunk
tags/6.7.0.beta1
Matti Tahvonen 16 years ago
parent
commit
ac1118a249

+ 6
- 2
src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java View File

private RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, appUri private RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, appUri
+ "/UIDL/?repaintAll=1&"); + "/UIDL/?repaintAll=1&");


public Console console;
private static Console console;


private Vector pendingVariables = new Vector(); private Vector pendingVariables = new Vector();


RootPanel.get("itmtk-ajax-window").add(view); RootPanel.get("itmtk-ajax-window").add(view);
} }
public static Console getConsole() {
return console;
}


private native boolean isDebugMode() /*-{
private native static boolean isDebugMode() /*-{
var uri = $wnd.location; var uri = $wnd.location;
var re = /debug[^\/]*$/; var re = /debug[^\/]*$/;
return re.test(uri); return re.test(uri);

+ 7
- 5
src/com/itmill/toolkit/terminal/gwt/client/Caption.java View File

import com.google.gwt.user.client.Event; import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.PopupPanel; import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.SimplePanel;


public class Caption extends HTML { public class Caption extends HTML {
if(errorIndicatorElement == null) { if(errorIndicatorElement == null) {
errorIndicatorElement = DOM.createDiv(); errorIndicatorElement = DOM.createDiv();
DOM.setAttribute(errorIndicatorElement, "className", "i-errorindicator");
DOM.setElementProperty(errorIndicatorElement, "className", "i-errorindicator");
DOM.insertChild(getElement(), errorIndicatorElement, 0); DOM.insertChild(getElement(), errorIndicatorElement, 0);
} }
if(uidl.hasAttribute("description")) { if(uidl.hasAttribute("description")) {
if(captionText != null) { if(captionText != null) {
DOM.setAttribute(captionText, "title", uidl.getStringAttribute("description"));
DOM.setElementProperty(captionText, "title", uidl.getStringAttribute("description"));
} else { } else {
setTitle(uidl.getStringAttribute("description")); setTitle(uidl.getStringAttribute("description"));
} }
case Event.ONMOUSEOUT: case Event.ONMOUSEOUT:
hideErrorMessage(); hideErrorMessage();
break; break;
case Event.ONCLICK:
ApplicationConnection.getConsole().
log(DOM.getInnerHTML(errorMessage.getElement()));
default: default:
break; break;
} }
} }
errorContainer.setPopupPosition( errorContainer.setPopupPosition(
DOM.getAbsoluteLeft(errorIndicatorElement) + DOM.getAbsoluteLeft(errorIndicatorElement) +
2*DOM.getIntAttribute(errorIndicatorElement, "offsetHeight"),
2*DOM.getElementPropertyInt(errorIndicatorElement, "offsetHeight"),
DOM.getAbsoluteTop(errorIndicatorElement) + DOM.getAbsoluteTop(errorIndicatorElement) +
2*DOM.getIntAttribute(errorIndicatorElement, "offsetHeight"));
2*DOM.getElementPropertyInt(errorIndicatorElement, "offsetHeight"));
errorContainer.show(); errorContainer.show();
} }
} }

+ 4
- 3
src/com/itmill/toolkit/terminal/gwt/client/DebugConsole.java View File



import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Label;
import com.itmill.toolkit.terminal.gwt.client.ui.IWindow; import com.itmill.toolkit.terminal.gwt.client.ui.IWindow;


private void minimize() { private void minimize() {
// TODO stack to bottom (create window manager of some sort) // TODO stack to bottom (create window manager of some sort)
setPixelSize(60, 60); setPixelSize(60, 60);
setPopupPosition(Window.getClientWidth() - 66, Window.getClientHeight() - 66);
setPopupPosition(Window.getClientWidth() - 80, Window.getClientHeight() - 80);
} }


/* (non-Javadoc) /* (non-Javadoc)
* @see com.itmill.toolkit.terminal.gwt.client.Console#log(java.lang.String) * @see com.itmill.toolkit.terminal.gwt.client.Console#log(java.lang.String)
*/ */
public void log(String msg) { public void log(String msg) {
panel.add(new Label(msg));
panel.add(new HTML(msg));
System.out.println(msg); System.out.println(msg);
} }


* @see com.itmill.toolkit.terminal.gwt.client.Console#error(java.lang.String) * @see com.itmill.toolkit.terminal.gwt.client.Console#error(java.lang.String)
*/ */
public void error(String msg) { public void error(String msg) {
panel.add((new Label(msg)));
panel.add((new HTML(msg)));
System.out.println(msg); System.out.println(msg);
} }



+ 3
- 0
src/com/itmill/toolkit/terminal/gwt/client/ErrorMessage.java View File

if (child instanceof String) { if (child instanceof String) {
String errorMessage = (String) child; String errorMessage = (String) child;
add(new HTML(errorMessage)); add(new HTML(errorMessage));
} else if (child instanceof UIDL.XML) {
UIDL.XML xml = (UIDL.XML) child;
add(new HTML(xml.getXMLAsString()));
} else { } else {
ErrorMessage childError = new ErrorMessage(); ErrorMessage childError = new ErrorMessage();
add(childError); add(childError);

+ 12
- 1
src/com/itmill/toolkit/terminal/gwt/client/UIDL.java View File

} }


public String getXMLAsString() { public String getXMLAsString() {
return x.get("x").toString();
StringBuffer sb = new StringBuffer();
for(Iterator it = x.keySet().iterator(); it.hasNext();) {
String tag = (String) it.next();
sb.append("<");
sb.append(tag);
sb.append(">");
sb.append(x.get(tag).isString().stringValue());
sb.append("</");
sb.append(tag);
sb.append(">");
}
return sb.toString();
} }
} }



+ 16
- 15
src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java View File

tHead.setHorizontalScrollPosition(scrollLeft); tHead.setHorizontalScrollPosition(scrollLeft);
firstRowInViewPort = (int) Math.ceil( scrollTop / (double) tBody.getRowHeight() ); firstRowInViewPort = (int) Math.ceil( scrollTop / (double) tBody.getRowHeight() );
client.console.log("At scrolltop: " + scrollTop + " At row " + firstRowInViewPort);
ApplicationConnection.getConsole()
.log("At scrolltop: " + scrollTop + " At row " + firstRowInViewPort);
int postLimit = (int) (firstRowInViewPort + pageLength + pageLength*CACHE_REACT_RATE); int postLimit = (int) (firstRowInViewPort + pageLength + pageLength*CACHE_REACT_RATE);
if(postLimit > totalRows -1 ) if(postLimit > totalRows -1 )
if(firstRowInViewPort - pageLength*CACHE_RATE > lastRendered || if(firstRowInViewPort - pageLength*CACHE_RATE > lastRendered ||
firstRowInViewPort + pageLength + pageLength*CACHE_RATE < firstRendered ) { firstRowInViewPort + pageLength + pageLength*CACHE_RATE < firstRendered ) {
// need a totally new set // need a totally new set
client.console.log("Table: need a totally new set");
ApplicationConnection.getConsole().log("Table: need a totally new set");
rowRequestHandler.setReqFirstRow((int) (firstRowInViewPort - pageLength*CACHE_RATE)); rowRequestHandler.setReqFirstRow((int) (firstRowInViewPort - pageLength*CACHE_RATE));
rowRequestHandler.setReqRows((int) (2*CACHE_RATE*pageLength + pageLength)); rowRequestHandler.setReqRows((int) (2*CACHE_RATE*pageLength + pageLength));
rowRequestHandler.deferRowFetch(); rowRequestHandler.deferRowFetch();
} }
if(preLimit < firstRendered ) { if(preLimit < firstRendered ) {
// need some rows to the beginning of the rendered area // need some rows to the beginning of the rendered area
client.console.log("Table: need some rows to the beginning of the rendered area");
ApplicationConnection.getConsole().log("Table: need some rows to the beginning of the rendered area");
rowRequestHandler.setReqFirstRow((int) (firstRowInViewPort - pageLength*CACHE_RATE)); rowRequestHandler.setReqFirstRow((int) (firstRowInViewPort - pageLength*CACHE_RATE));
rowRequestHandler.setReqRows(firstRendered - rowRequestHandler.getReqFirstRow()); rowRequestHandler.setReqRows(firstRendered - rowRequestHandler.getReqFirstRow());
rowRequestHandler.deferRowFetch(); rowRequestHandler.deferRowFetch();
} }
if(postLimit > lastRendered) { if(postLimit > lastRendered) {
// need some rows to the end of the rendered area // need some rows to the end of the rendered area
client.console.log("need some rows to the end of the rendered area");
ApplicationConnection.getConsole().log("need some rows to the end of the rendered area");
rowRequestHandler.setReqFirstRow(lastRendered + 1); rowRequestHandler.setReqFirstRow(lastRendered + 1);
rowRequestHandler.setReqRows((int) ((firstRowInViewPort + pageLength + pageLength*CACHE_RATE) - lastRendered)); rowRequestHandler.setReqRows((int) ((firstRowInViewPort + pageLength + pageLength*CACHE_RATE) - lastRendered));
rowRequestHandler.deferRowFetch(); rowRequestHandler.deferRowFetch();
} }


private void announceScrollPosition() { private void announceScrollPosition() {
client.console.log(""+firstRowInViewPort);
ApplicationConnection.getConsole().log(""+firstRowInViewPort);
if(scrollPositionElement == null) { if(scrollPositionElement == null) {
scrollPositionElement = DOM.createDiv(); scrollPositionElement = DOM.createDiv();
DOM.setElementProperty(scrollPositionElement, "className", "i-table-scrollposition"); DOM.setElementProperty(scrollPositionElement, "className", "i-table-scrollposition");
} }


public void run() { public void run() {
client.console.log("Getting " + reqRows + " rows from " + reqFirstRow);
ApplicationConnection.getConsole().log("Getting " + reqRows + " rows from " + reqFirstRow);
client.updateVariable(paintableId, "firstvisible", firstRowInViewPort, false); client.updateVariable(paintableId, "firstvisible", firstRowInViewPort, false);
client.updateVariable(paintableId, "reqfirstrow", reqFirstRow, false); client.updateVariable(paintableId, "reqfirstrow", reqFirstRow, false);
client.updateVariable(paintableId, "reqrows", reqRows, true); client.updateVariable(paintableId, "reqrows", reqRows, true);
protected void handleCaptionEvent(Event event) { protected void handleCaptionEvent(Event event) {
switch (DOM.eventGetType(event)) { switch (DOM.eventGetType(event)) {
case Event.ONMOUSEDOWN: case Event.ONMOUSEDOWN:
client.console.log("HeaderCaption: mouse down");
ApplicationConnection.getConsole().log("HeaderCaption: mouse down");
if(columnReordering) { if(columnReordering) {
dragging = true; dragging = true;
moved = false; moved = false;
colIndex = getColIndexByKey(cid); colIndex = getColIndexByKey(cid);
DOM.setCapture(getElement()); DOM.setCapture(getElement());
this.headerX = tHead.getAbsoluteLeft(); this.headerX = tHead.getAbsoluteLeft();
client.console.log("HeaderCaption: Caption set to capture mouse events");
ApplicationConnection.getConsole().log("HeaderCaption: Caption set to capture mouse events");
DOM.eventPreventDefault(event); // prevent selecting text DOM.eventPreventDefault(event); // prevent selecting text
} }
break; break;
case Event.ONMOUSEUP: case Event.ONMOUSEUP:
client.console.log("HeaderCaption: mouseUP");
ApplicationConnection.getConsole().log("HeaderCaption: mouseUP");
if(columnReordering) { if(columnReordering) {
dragging = false; dragging = false;
DOM.releaseCapture(getElement()); DOM.releaseCapture(getElement());
client.console.log("HeaderCaption: Stopped column reordering");
ApplicationConnection.getConsole().log("HeaderCaption: Stopped column reordering");
if(moved) { if(moved) {
hideFloatingCopy(); hideFloatingCopy();
tHead.removeSlotFocus(); tHead.removeSlotFocus();
break; break;
case Event.ONMOUSEMOVE: case Event.ONMOUSEMOVE:
if (dragging) { if (dragging) {
client.console.log("HeaderCaption: Dragging column, optimal index...");
ApplicationConnection.getConsole().log("HeaderCaption: Dragging column, optimal index...");
if(!moved) { if(!moved) {
createFloatingCopy(); createFloatingCopy();
moved = true; moved = true;
tHead.focusSlot(closestSlot); tHead.focusSlot(closestSlot);
updateFloatingCopysPosition(x, -1); updateFloatingCopysPosition(x, -1);
client.console.log(""+closestSlot);
ApplicationConnection.getConsole().log(""+closestSlot);
} }
break; break;
default: default:
fixSpacers(); fixSpacers();
} else { } else {
// sorted or column reordering changed // sorted or column reordering changed
client.console.log("Bad update" + firstIndex + "/"+ rows);
ApplicationConnection.getConsole().log("Bad update" + firstIndex + "/"+ rows);
} }
} }
switch (DOM.eventGetType(event)) { switch (DOM.eventGetType(event)) {
case Event.ONCLICK: case Event.ONCLICK:
if((CLASSNAME+"-cell-content").equals(s)) { if((CLASSNAME+"-cell-content").equals(s)) {
client.console.log("Row click");
ApplicationConnection.getConsole().log("Row click");
if(selectMode > ITable.SELECT_MODE_NONE) { if(selectMode > ITable.SELECT_MODE_NONE) {
toggleSelection(); toggleSelection();
client.updateVariable(paintableId, "selected", selectedRowKeys.toArray(), immediate); client.updateVariable(paintableId, "selected", selectedRowKeys.toArray(), immediate);
} }
public void showContextMenu(Event event) { public void showContextMenu(Event event) {
client.console.log("Context menu");
ApplicationConnection.getConsole().log("Context menu");
if(actionKeys != null) { if(actionKeys != null) {
int left = DOM.eventGetClientX(event); int left = DOM.eventGetClientX(event);
int top = DOM.eventGetClientY(event); int top = DOM.eventGetClientY(event);

+ 1
- 1
src/com/itmill/toolkit/terminal/gwt/client/ui/ITextualDate.java View File

try { try {
date = format.parse(text.getText()); date = format.parse(text.getText());
} catch (Exception e) { } catch (Exception e) {
client.console.log(e.getMessage());
ApplicationConnection.getConsole().log(e.getMessage());
text.addStyleName(ITextField.CLASSNAME+"-error"); text.addStyleName(ITextField.CLASSNAME+"-error");
Timer t = new Timer() { Timer t = new Timer() {
public void run() { public void run() {

+ 0
- 1
src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java View File

} }
public void showContextMenu(Event event) { public void showContextMenu(Event event) {
client.console.log("Context menu");
if(actionKeys != null) { if(actionKeys != null) {
int left = DOM.eventGetClientX(event); int left = DOM.eventGetClientX(event);
int top = DOM.eventGetClientY(event); int top = DOM.eventGetClientY(event);

Loading…
Cancel
Save