示例#1
0
  /**
   * Perform any cleanup necessary to exit the program (save configuration, etc).
   *
   * @see org.eclipse.jface.window.Window#close()
   */
  public boolean close() {
    try {
      int modified = modifiedCount();
      if (modified > 0) {
        MessageBox message = new MessageBox(getShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
        message.setMessage(modified + " document(s) not saved, still exit?");
        int confirm = message.open();
        if (confirm == SWT.NO) {
          return false;
        }
      }

      Point currentSize = this.getShell().getSize();
      config.setInitialSize(currentSize.x, currentSize.y);
      config.save();

      CTabItem[] items = tabFolder.getItems();
      for (int i = items.length - 1; i >= 0; --i) {
        Control control = items[i].getControl();
        if (control instanceof WikiViewer) {
          ((WikiViewer) control).dispose();
        } else {
          LOG.debug("Control is not of type WikiViewer : " + control.getClass().getName());
        }
      }
    } catch (ConfigurationException e) {
      logError("Cannot save configuration", e);
    }

    return super.close();
  }
示例#2
0
 @Override
 public void update(final ModelEvent event) {
   if (event.part == ModelPart.SELECTED_ATTRIBUTE) {
     for (final CTabItem item : folder.getItems()) {
       if (item.getText().equals(event.data)) {
         folder.setSelection(item);
         break;
       }
     }
   } else if (event.part == ModelPart.MODEL) {
     model = (Model) event.data;
   } else if (event.part == ModelPart.INPUT) {
     reset();
     folder.setRedraw(false);
     for (int i = 0; i < model.getInputConfig().getInput().getHandle().getNumColumns(); i++) {
       final String col = model.getInputConfig().getInput().getHandle().getAttributeName(i);
       final IView l = new ViewAttributeDefinition(folder, col, controller);
       l.update(new ModelEvent(this, ModelPart.MODEL, model));
       l.update(new ModelEvent(this, ModelPart.INPUT, event.data));
       names.put(i, col);
       views.add(l);
     }
     folder.setRedraw(true);
     folder.redraw();
   }
 }
示例#3
0
  public static void createItem(
      DataObject note, String label, String agroup, ActionContext actionContext) {
    CTabFolder tab = (CTabFolder) actionContext.get("tabFolder");
    for (CTabItem tabItem : tab.getItems()) {
      String l = (String) tabItem.getText();
      if (l != null && l.equals(label)) {
        createItemAtTab(note, agroup, tabItem, actionContext);
        return;
      }
    }

    ActionContext ac = new ActionContext();
    ac.put("parent", tab);
    ac.put("parentContext", actionContext);
    Thing tabItemThing =
        World.getInstance()
            .getThing(
                "xworker.app.assistor.note.swt.Note/@composite/@tabFolder/@PreparedWidgets/@defaultTabItem");
    CTabItem tabItem = (CTabItem) tabItemThing.doAction("create", ac);
    if (label != null && !"".equals(label)) {
      tabItem.setText(label);
    }
    Image image = (Image) actionContext.get("tabImage");
    if (image != null) {
      tabItem.setImage(image);
    }
    tabItem.setData("actionContext", ac);
    createItemAtTab(note, agroup, tabItem, actionContext);
  }
示例#4
0
 public static CTabItem getTabItem(CTabFolder tabFolder, Object data) {
   for (CTabItem item : tabFolder.getItems()) {
     if (item.getData() == data) {
       return item;
     }
   }
   return null;
 }
示例#5
0
 /** @return List of WikiViewers */
 public List<WikiViewer> getWikiViewers() {
   List<WikiViewer> list = new LinkedList<WikiViewer>();
   CTabItem[] items = tabFolder.getItems();
   for (int i = items.length - 1; i >= 0; --i) {
     list.add((WikiViewer) items[i].getControl());
   }
   return list;
 }
示例#6
0
 @Override
 public void reset() {
   folder.setRedraw(false);
   for (final CTabItem tab : folder.getItems()) {
     tab.dispose();
   }
   // TODO: Is this enough cleanup?
   for (final IView v : views) {
     v.dispose();
   }
   names.clear();
   views.clear();
   folder.setRedraw(true);
   folder.redraw();
 }
  public OpenFile2(
      Shell shell,
      String programTitle,
      CTabFolder tabFolder,
      CommandCenter commandCenter,
      Display display)
      throws Exception {
    FileDialog fd = new FileDialog(shell, SWT.OPEN);
    fd.setText("Open");
    fd.setFilterPath("./input/");

    String[] filterExt = {"*.txt", "*.doc", "*.rtf", "*.*"};
    fd.setFilterExtensions(filterExt);

    String selected = fd.open();

    if (selected != null) {
      String fileName = selected;

      shell.setText(programTitle + " - " + fileName);

      ReadFile readFile = new ReadFile(fileName);

      MSA structure = new MSA(fileName);
      structure = readFile.getStructure();

      System.out.println(structure.getName());
      for (CTabItem tabItem : tabFolder.getItems()) {
        if (tabItem.getText().equals(structure.getName())) {
          throw new SameObjectException();
        }
      }

      Worksheet worksheet = new Worksheet(structure, tabFolder, commandCenter, shell, display);

      tabFolder.setSelection(worksheet);
    } else {
      System.out.println("Open File canceled by ESC key");
    }
  }