public void resetCaseStudy() throws ThinklabException { storylineViews.clear(); currentStoryline = null; /* * reset ROI and all modules */ userModel.clearAnalysis(); /* * ask the user model to give us all the modules we have access to. */ userModel.initializeModules(); moduleViews.clear(); sidebar.resetModules(); createModuleViews(); /* * restore interface */ selectionBar.setVisible(true); selectionBar.idle(false); gazetteer.setValue(""); getBanner().setStoryline(null); ZK.resetComponent(this.storyline); this.storyline.setVisible(false); this.mapwindow.setVisible(true); browserState = 0; sidebar.redisplay(); }
public void onClick$run(Event e) { getVectorLayer().clearFeatures(); shapeShown = false; selectionBar.setVisible(false); /* * 1. prepare info page for case study with area picture, list of possible storylines with explanations, * instructions for use, and pointers to web site where it counts. Also: form to save area for later, * disabled if not logged in. * * 2. Fill in enabled modules with storylines. Only show enabled ones with option to show those that are * not enabled. * * 3. Each storyline badge should bring up main page for storyline when clicked. That should have a main area * for the ES and one for the storyline-specific info. Model should look for the components and get * the descriptions from the concepts. Links to web site wherever necessary. Page has "start" etc on * it. Instead of list of pages, have "Computation is ongoing" or "Computation is waiting" or * "Computation is not active (activate)". When computed. the area becomes the index for the result * pages. * * 4. All possible downloads should be clearly marked on storyline page. */ try { userModel.startAnalysis(); } catch (ThinklabException e1) { throw new ThinklabRuntimeException(e1); } browserState = 1; /* * create view for all storylines and collect in storylineViews map * * show all module storylines in their modules, activate those with > 0 storylines, * and show each model storyline in each module. */ getBanner().setStoryline(userModel.getStoryline()); for (SidebarModule view : moduleViews) { view.display(); } /* * create view for user storyline and display it. The map window becomes invisible until * session reset. */ ZK.resetComponent(this.storyline); storylineViews.clear(); currentStoryline = null; addStorylineView( userModel.getStoryline(), new UserStorylineView(userModel.getStoryline(), this)); this.mapwindow.setVisible(false); this.storyline.setVisible(true); showStoryline(userModel.getStoryline(), null); }
private void createModuleViews() { for (AriesModule module : userModel.getAllModules()) { /* * use the class specified in the module storyline if any is * given; if not, create a stock AriesModule. */ AriesModuleView mod = null; String scl = module .getStoryline() .getTemplate() .getDefault("module-sidebar-view-class", AriesModuleView.class.getCanonicalName()); try { Class<?> amc = Class.forName(scl, true, ARIESWebappPlugin.get().getClassLoader()); Constructor<?> ct = amc.getConstructor(AriesModule.class, AriesBrowser.class); mod = (AriesModuleView) ct.newInstance(module, this); } catch (Exception e) { throw new ThinklabRuntimeException(e); } addModuleView(mod); } }
public void onFeatureAdded$vector(Event e) { boolean userDrawn = (this.picmode == ADD || this.picmode == SUBTRACT); FeatureAddedEvent ev = (FeatureAddedEvent) e; if (userDrawn) { selectionBar.idle(true); getVectorLayer().setEditControl("navigate"); } try { boolean redraw = false; ShapeValue shape = new ShapeValue(map.getProjectionId() + " " + ev.getFeatureWKT()); /* * happens when user draws too fast, especially with slow * browsers */ if (!shape.isValid()) { setStatus(STATUS.INVALID_SHAPE); if (userModel.getRegionOfInterest() == null) getVectorLayer().clearFeatures(); return; } if (this.picmode == ADD) { redraw = userModel.addRegionOfInterest(shape); } else if (this.picmode == SUBTRACT) { redraw = true; userModel.subtractRegionOfInterest(shape); } this.picmode = IDLE; if (redraw) { getVectorLayer().clearFeatures(); getVectorLayer() .addFeature(NameGenerator.newName("sh"), userModel.getRegionOfInterest().getWKT()); } } catch (ThinklabException e1) { throw new ThinklabRuntimeException(e1); } if (userDrawn) setStatus(STATUS.IDLE); }
public void exportKML() throws ThinklabException { Pair<String, String> uncu = application.getNewResourceUrl(".kmz", session); userModel.getStoryline().export(uncu.getFirst()); try { Filedownload.save(uncu.getSecond(), "application/vnd.google-earth.kmz"); } catch (FileNotFoundException e) { throw new ThinklabIOException(e); } }
@Override public void postInitialize() { userModel.initializeModules(); createModuleViews(); sidebar.afterCompose(); sidebar.redisplay(); statusbar.initialize(); start(); // get ready to process messages }
/* * Called through reflection to refresh all components that have to do with the * associated storyline. */ public void refreshStoryline(String c) { Storyline ss = userModel.getStoryline().findStoryline(c); sidebar.redisplay(); if (currentStoryline != null && ss.equals(currentStoryline)) { currentStoryline = null; showStoryline(ss, null); } }
public void onClick$resetdraw(Event e) { selectionBar.idle(false); this.picmode = IDLE; setStatus(STATUS.IDLE); getVectorLayer().clearFeatures(); try { userModel.resetRegionOfInterest(null); } catch (ThinklabException e1) { throw new ThinklabRuntimeException(e1); } }
public void setRegionFromGazetteer(String s) { if (s != null && !s.equals("")) { try { ShapeValue sh = Geospace.get().retrieveFeature(s); if (sh != null) { sh = sh.transform(Geospace.get().getGoogleCRS()); userModel.resetRegionOfInterest(sh); selectionBar.idle(true); moveMapTo(map, sh); getVectorLayer().clearFeatures(); getVectorLayer().addFeature("sel", sh.getWKT()); } } catch (ThinklabException e1) { throw new ThinklabRuntimeException(e1); } } }