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 + -
显示快捷键?