コード例 #1
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  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();
  }
コード例 #2
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  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);
  }
コード例 #3
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  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);
    }
  }
コード例 #4
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  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);
  }
コード例 #5
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  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);
    }
  }
コード例 #6
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  @Override
  public void postInitialize() {

    userModel.initializeModules();
    createModuleViews();
    sidebar.afterCompose();
    sidebar.redisplay();
    statusbar.initialize();
    start(); // get ready to process messages
  }
コード例 #7
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  /*
   * 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);
    }
  }
コード例 #8
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  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);
    }
  }
コード例 #9
0
ファイル: AriesBrowser.java プロジェクト: ariesteam/aries
  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);
      }
    }
  }