/** * 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(); }
@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(); } }
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); }
public static CTabItem getTabItem(CTabFolder tabFolder, Object data) { for (CTabItem item : tabFolder.getItems()) { if (item.getData() == data) { return item; } } return null; }
/** @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; }
@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"); } }