swoopframe.java
来自「Semantic Web Ontology Editor」· Java 代码 · 共 1,892 行 · 第 1/5 页
JAVA
1,892 行
// add about at the end of the menu JMenu aboutMenu = new JMenu("About"); JMenuItem aboutMItem = new JMenuItem("About SWOOP.."); aboutMenu.add(aboutMItem); JmenuBar.add(aboutMenu); // add menu bar to frame setJMenuBar(JmenuBar); // add action listeners for menu items newOntMItem.addActionListener(this); loadOntMItem.addActionListener(this); ontRemoveMItem.addActionListener(this); loadWkspMItem.addActionListener(this); saveWkspMItem.addActionListener(this); saveAsMItem.addActionListener(this); clearMItem.addActionListener(this); ontSaveMItem.addActionListener(this); exportMItem.addActionListener(this); exportStatsMItem.addActionListener(this); exportTreeMItem.addActionListener(this); exportHTMLMItem.addActionListener(this); exportInferredKB.addActionListener(this); prefMItem.addActionListener(this); addResHoldMItem.addActionListener(this); viewResHoldMItem.addActionListener(this); launchBarMenu.addActionListener(this); refreshOntMenu.addActionListener(this); reloadOntMenu.addActionListener(this); browserMenu.addActionListener(this); JMenuAutomatic.addActionListener(this); queryMItem.addActionListener(this); repairMItem.addActionListener(this); showEnableRules.addActionListener(this); versionMItem.addActionListener(this); sudokuMItem.addActionListener(this); aboutMItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { VersionInfo vinfo = Swoop.getVersionInfo(); // add information in the About.. message panel JPanel msgPanel = new JPanel(); msgPanel.setLayout(new GridLayout(6, 1)); msgPanel.add(createLabel("SWOOP "+vinfo.getVersionString())); msgPanel.add(createLabel("Release Date: "+vinfo.getReleaseDate())); msgPanel.add(createLabel("")); msgPanel.add(createLabel("MINDSWAP Research Group")); msgPanel.add(createLabel("University of Maryland, College Park")); // msgPanel.add(new JLabel("")); msgPanel.add(createLabel("http://www.mindswap.org/2004/SWOOP/")); JOptionPane.showMessageDialog(null, msgPanel); } }); exitMItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { SwoopClose(); } }); ontCodeMenu.addActionListener(this); ontCodeASMenu.addActionListener(this); viewSideBarMenu.addActionListener(this); viewChangeBarMenu.addActionListener(this); viewOptionBarMenu.addActionListener(this); // setup shortcuts (hidden from user) JMenu shortcutsMenu = new JMenu(); JMenuItem showIconsMenu, showDivMenu, enableAutoRetMenu, prevMenu, nextMenu; showIconsMenu = new JMenuItem(); showIconsMenu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { swoopModel.setShowIcons(!swoopModel.getShowIcons(), true); } }); showIconsMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, ActionEvent.CTRL_MASK)); shortcutsMenu.add(showIconsMenu); showDivMenu = new JMenuItem(); showDivMenu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { swoopModel.setShowDivisions(!swoopModel.getShowDivisions()); } }); showDivMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK)); shortcutsMenu.add(showDivMenu); enableAutoRetMenu = new JMenuItem(); enableAutoRetMenu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { swoopModel.setEnableAutoRetrieve(!swoopModel .getEnableAutoRetrieve()); } }); enableAutoRetMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, ActionEvent.CTRL_MASK)); shortcutsMenu.add(enableAutoRetMenu); prevMenu = new JMenuItem(); prevMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, ActionEvent.ALT_MASK)); prevMenu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { termDisplay.previousHistory(); } }); shortcutsMenu.add(prevMenu); nextMenu = new JMenuItem(); nextMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, ActionEvent.ALT_MASK)); nextMenu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { termDisplay.nextHistory(); } }); shortcutsMenu.add(nextMenu); shortcutsMenu.setVisible(false); JmenuBar.add(shortcutsMenu); } public void clearWorkspace(boolean notify) { // clear workspace String msg = "All Ontologies in the Workspace will be removed. Also, the Change Log and Annotation Cache will be cleared. Continue?"; int result = -1; if (notify) result = JOptionPane.showConfirmDialog(this, msg, "Clear Workspace", JOptionPane.YES_NO_OPTION); if (result == JOptionPane.YES_OPTION || !notify) { // clear swoopModel selections swoopModel.selectedOntology = null; swoopModel.selectedEntity = null; swoopModel.selectedOWLObject = null; // reset change logs swoopModel.setUncommittedChanges(new ArrayList()); swoopModel.setCommittedChanges(new ArrayList()); // remove all ontologies from swoopModel Set uriList = new HashSet(swoopModel.getOntologyURIs()); Iterator iter = uriList.iterator(); while (iter.hasNext()) { URI uri = (URI) iter.next(); swoopModel.removeOntology(uri); } // clear address combo addrCombo.removeAllItems(); // clear changes cache swoopModel.getChangesCache().removeAllChanges(); // clear annotation cache and annotated object uris swoopModel.setAnnotatedObjectURIs(new HashSet()); swoopModel.setAnnotationCache(new SwoopCache()); // also clear annotation node tree if (termDisplay.annoteaRenderer != null) { termDisplay.annoteaRenderer.clearAnnotationNodeTree(); } // reset current workspace and ontology files ontFile = null; wkspcFile = null; fileOntMap = new HashMap(); // reset file menu names this.saveWkspMItem.setText("Save Workspace"); // if (notify) JOptionPane.showMessageDialog(this, "Workspace Cleared", "Reset", JOptionPane.INFORMATION_MESSAGE); this.disableMenuOptions(); } } public void disableMenuOptions() { // disable menu options saveWkspMItem.setEnabled(false); saveAsMItem.setEnabled(false); ontSaveMItem.setEnabled(false); ontRemoveMItem.setEnabled(false); exportMItem.setEnabled(false); clearMItem.setEnabled(false); exportTreeMItem.setEnabled(false); exportInferredKB.setEnabled(false); exportStatsMItem.setEnabled(false); exportHTMLMItem.setEnabled(false); } public void enableMenuOptions() { saveWkspMItem.setEnabled(true); saveAsMItem.setEnabled(true); ontSaveMItem.setEnabled(true); exportMItem.setEnabled(true); clearMItem.setEnabled(true); exportTreeMItem.setEnabled(true); exportInferredKB.setEnabled(true); exportStatsMItem.setEnabled(true); exportHTMLMItem.setEnabled(true); } /*** * Generic load file method using which user can load * SWOOP Workspace (.swp), SWOOP Ontology Object File (.swp) * or standard OWL Ontology (.owl, .rdf) * This method invokes LoadWorkspace(), LoadOntologyFile() or * LoadOWLFile() depending on extension of file selected by user */ public void loadFile(boolean workspace) { JFileChooser wrapChooser = new JFileChooser(); if (workspace) { wrapChooser.addChoosableFileFilter(SwoopFileFilter .getWorkspaceFilter()); } else { FileFilter[] filters = SwoopFileFilter.getOntologyFilters(); for (int i = 0; i < filters.length; i++) wrapChooser.addChoosableFileFilter(filters[i]); } int returnVal; if (openFile != null) wrapChooser.setCurrentDirectory(openFile); // allow multiple selection while loading ontology files wrapChooser.setMultiSelectionEnabled(true); openFile = null; if (openFile == null) { returnVal = wrapChooser.showOpenDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { openFile = wrapChooser.getSelectedFile(); } else { // save cancelled return; } } // get selected files File[] openFiles = wrapChooser.getSelectedFiles(); if (openFiles.length == 1) { // for a single file load, use the standard mechanism openFile = openFiles[0]; String name = openFile.getName().substring( openFile.getName().lastIndexOf("/") + 1, openFile.getName().length()); String extension = openFile.getName().substring( openFile.getName().lastIndexOf(".") + 1, openFile.getName().length()); if (extension.equals("swp") || extension.equals("SWP")) { // load java object file for workspace wkspcFile = openFile; saveWkspMItem.setText("Save Workspace (../" + name + ")"); loadWorkspace(true); } else if (extension.equals("swo") || extension.equals("SWO")) { // load java object file for ontology ontFile = openFile; loadOntologyFile(); } else { // load owl file in rdf/txt ontFile = openFile; loadOWLFile(); } } else { // load a batch of OWL files in RDF/Abstract Syntax List ontologyList = new ArrayList(); for (int i = 0; i < openFiles.length; i++) { openFile = openFiles[i]; String name = openFile.getName().substring( openFile.getName().lastIndexOf("/") + 1, openFile.getName().length()); String extension = openFile.getName().substring( openFile.getName().lastIndexOf(".") + 1, openFile.getName().length()); // exclude java object files if (!extension.equals("swp") && !extension.equals("swo") && !extension.equals("SWP") && !extension.equals("SWO")) { try { FileInputStream in = new FileInputStream(openFile); InputStreamReader reader = new InputStreamReader(in); URI uri = new URI("file:///" + name); OWLOntology ont = null; if (extension.equals("txt")) ont = swoopModel.loadOntologyInAbstractSyntax( reader, uri); else ont = swoopModel.loadOntologyInRDF(reader, uri); ontologyList.add(ont); // add ontology to fileOntMap this.fileOntMap.put(ont.getPhysicalURI(), openFile); } catch (Exception ex) { ex.printStackTrace(); } } } // end opening multiple file loop if (ontologyList.size() > 0) swoopModel.addOntologies(ontologyList); } } /*** * Generic File SaveAs method that allows user to save either the * current SWOOP workspace, selected ontology as SWOOP Ontology Object file * or selected ontology as OWL file in RDF/XML * @param onlyWkspcFilter - if true, user can select only workspace files * @param onlyOntFilter - if true, user can select only ontology files */ public void saveAsFile(boolean onlyWkspcFilter, boolean onlyOntFilter) { JFileChooser wrapChooser = new JFileChooser(); FileFilter[] filters; // add file filters if (onlyWkspcFilter) { filters = new FileFilter[1]; filters[0] = SwoopFileFilter.getWorkspaceFilter(); wrapChooser.setFileFilter(filters[0]); } else if (onlyOntFilter) { filters = SwoopFileFilter.getOntologyFilters(); for (int i = 0; i < filters.length; i++) wrapChooser.addChoosableFileFilter(filters[i]); } else { filters = SwoopFileFilter.getAllFilters(); for (int i = 0; i < filters.length; i++) wrapChooser.addChoosableFileFilter(filters[i]); } if (saveFile != null) wrapChooser.setCurrentDirectory(saveFile); int returnVal = wrapChooser.showSaveDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { saveFile = wrapChooser.getSelectedFile(); } else { // save cancelled return; } String name = saveFile.getName().substring( saveFile.getName().lastIndexOf("/") + 1, saveFile.getName().length()); String extension = ""; int match = -1; for (int i = 0; i < filters.length; i++) { if (filters[i].equals(wrapChooser.getFileFilter())) { match = i; break; } } if (onlyOntFilter) match++; switch (match) { case 0: // swoop workspace filter alone extension = "swp"; break; case 1: // swoop ontology file filter extension = "swo"; break; case 2: // owl extension = "owl"; break; case 3: // rdf extension = "rdf"; break; case 4: // xml extension = "xml"; break; case 5: // abstract syntax extension = "txt"; break; } // if no extension determined yet and name contains .
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?