/** * Binds this manipulator to the specified SVG rect. * * @param element The SVG rect this manipulator is applied to. * @return The root element of the manipulator */ @Override public OMSVGElement bind(Record record) { this.record = record; SVGViewBoxElementModel model = (SVGViewBoxElementModel) record.getModel(); mode = Mode.PASSIVE; // Create the graphical representations for the manipulator // The manipulator has the following SVG structure // <g> // <rect/> position // <g> // <rect/> top-left corner // <rect/> bottom-right corner // </g> // </g> OMSVGRectElement rect = (OMSVGRectElement) model.getElementWrapper(); svg = rect.getOwnerSVGElement(); OMSVGDocument document = (OMSVGDocument) svg.getOwnerDocument(); g = document.createSVGGElement(); g.setClassNameBaseVal(AppBundle.INSTANCE.css().rectGeometryManipulator()); posHandle = document.createSVGRectElement(); OMSVGGElement handleGroup = document.createSVGGElement(); topLeftHandle = document.createSVGRectElement(); bottomRightHandle = document.createSVGRectElement(); g.appendChild(posHandle); g.appendChild(handleGroup); handleGroup.appendChild(topLeftHandle); handleGroup.appendChild(bottomRightHandle); monitorModel = true; model.addChangeListener(this); scheduleInit(); return g; }
public void onModuleLoad() { instance = this; GWT.setUncaughtExceptionHandler( new GWT.UncaughtExceptionHandler() { public void onUncaughtException(Throwable throwable) { GWT.log("Uncaught exception", throwable); if (!GWT.isScript()) { String text = "Uncaught exception: "; while (throwable != null) { StackTraceElement[] stackTraceElements = throwable.getStackTrace(); text += throwable.toString() + "\n"; for (int i = 0; i < stackTraceElements.length; i++) { text += " at " + stackTraceElements[i] + "\n"; } throwable = throwable.getCause(); if (throwable != null) { text += "Caused by: "; } } DialogBox dialogBox = new DialogBox(true); DOM.setStyleAttribute(dialogBox.getElement(), "backgroundColor", "#ABCDEF"); System.err.print(text); text = text.replaceAll(" ", " "); dialogBox.setHTML("<pre>" + text + "</pre>"); dialogBox.center(); } } }); AppBundle.INSTANCE.css().ensureInjected(); // Create graphical context OMSVGDocument doc = OMSVGParser.currentDocument(); SVGElement element = doc.createSVGPathElement().getElement().cast(); element .getStyle() .setProperty(SVGConstants.CSS_FILL_PROPERTY, SVGConstants.CSS_LIGHTBLUE_VALUE); element.getStyle().setProperty(SVGConstants.CSS_STROKE_PROPERTY, SVGConstants.CSS_BLACK_VALUE); SVGNamedElementModel.createTitleDesc(element, AppConstants.INSTANCE.graphicalContext()); cssContext = new CssContextModel(element); svgWindows = new ArrayList<SVGWindow>(); viewport = new ViewportExt(); viewport.setLayout(new BorderLayout()); viewport.add(createMenuBar(), new BorderLayoutData(LayoutRegion.NORTH, getWindowBarHeight())); viewport.setStyleAttribute("background-color", SVGConstants.CSS_BEIGE_VALUE); commandToolBar = new CommandFactoryToolBar( CommandFactories.getAllFactoriesStore(), getCommandFactorySelector()); ContentPanel commandPanel = new ContentPanel(); commandPanel.setHeaderVisible(false); commandPanel.setBottomComponent(commandToolBar); viewport.add(commandPanel, new BorderLayoutData(LayoutRegion.SOUTH, getWindowBarHeight())); new InternalLoadRequest(AppBundle.INSTANCE.fish(), "fish.svg").load(); new InternalLoadRequest(AppBundle.INSTANCE.fries(), "fries.svg").load(); new InternalLoadRequest(AppBundle.INSTANCE.sample(), "sample.svg").load(); update(); fileUpload = new FileUploadExt(); Style style = fileUpload.getElement().getStyle(); style.setVisibility(Visibility.HIDDEN); style.setWidth(0, Unit.PX); style.setHeight(0, Unit.PX); fileUpload.addChangeHandler( new ChangeHandler() { @Override public void onChange(ChangeEvent event) { processFiles(fileUpload.getFiles()); } }); RootPanel.get().add(viewport); RootPanel.get().add(fileUpload); }