protected SwingController commonWindowCreation() { SwingController controller = new SwingController(messageBundle); controller.setWindowManagementCallback(this); // assign properties manager. controller.setPropertiesManager(properties); // add interactive mouse link annotation support controller .getDocumentViewController() .setAnnotationCallback(new MyAnnotationCallback(controller.getDocumentViewController())); controllers.add(controller); // guild a new swing viewer with remembered view settings. int viewType = DocumentViewControllerImpl.ONE_PAGE_VIEW; int pageFit = DocumentViewController.PAGE_FIT_WINDOW_WIDTH; try { viewType = getProperties().getInt("document.viewtype", DocumentViewControllerImpl.ONE_PAGE_VIEW); pageFit = getProperties() .getInt( PropertiesManager.PROPERTY_DEFAULT_PAGEFIT, DocumentViewController.PAGE_FIT_WINDOW_WIDTH); } catch (NumberFormatException e) { // eating error, as we can continue with out alarm } SwingViewBuilder factory = new SwingViewBuilder(controller, viewType, pageFit); JFrame frame = factory.buildViewerFrame(); if (frame != null) { int width = getProperties().getInt("application.width", 800); int height = getProperties().getInt("application.height", 600); frame.setSize(width, height); int x = getProperties().getInt("application.x", 1); int y = getProperties().getInt("application.y", 1); frame.setLocation( (int) (x + (newWindowInvokationCounter * 10)), (int) (y + (newWindowInvokationCounter * 10))); ++newWindowInvokationCounter; frame.setVisible(true); } return controller; }
public void disposeWindow(SwingController controller, JFrame viewer, Properties properties) { if (controllers.size() <= 1) { quit(controller, viewer, properties); return; } // gets the window to close from the list int index = controllers.indexOf(controller); if (index >= 0) { controllers.remove(index); newWindowInvokationCounter--; if (viewer != null) { viewer.setVisible(false); viewer.dispose(); } } }
public void quit(SwingController controller, JFrame viewer, Properties properties) { if (controller != null && viewer != null) { // save width & height Rectangle sz = viewer.getBounds(); getProperties().setInt("application.x", sz.x); getProperties().setInt("application.y", sz.y); getProperties().setInt("application.height", sz.height); getProperties().setInt("application.width", sz.width); if (properties != null) { getProperties() .set( PropertiesManager.PROPERTY_DEFAULT_PAGEFIT, properties.getProperty(PropertiesManager.PROPERTY_DEFAULT_PAGEFIT)); getProperties().set("document.viewtype", properties.getProperty("document.viewtype")); } getProperties().setDefaultFilePath(ViewModel.getDefaultFilePath()); getProperties().setDefaultURL(ViewModel.getDefaultURL()); } // save all the rest, cookies, bookmarks, etc. getProperties().saveAndEnd(); // make sure all the controllers have been disposed. for (int i = 0; i < controllers.size(); i++) { SwingController c = controllers.get(i); if (c == null) continue; c.dispose(); } /* CUCFL : don't exit the program, just dispose the viewer and return to th emain program... */ // System.exit(0); if (viewer != null) { viewer.setVisible(false); viewer.dispose(); } }