⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 termsdisplay.java

📁 Semantic Web Ontology Editor
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	 *	 */	protected void previousHistory() {		try {			// get previous term from History Array			if (historyCtr<=0) return; else historyCtr--;			if (historyCtr==0) prevBtn.setEnabled(false); // if user keeps pressing back and reaches start			OWLNamedObject namedObj = historyEntity[historyCtr][0];			OWLOntology histOnt = (OWLOntology) historyEntity[historyCtr][1];			boolean imports = historyImports[historyCtr];			this.traverseHistory(namedObj, histOnt, imports);						// if previous was pressed, next button must be enabled			nextBtn.setEnabled(true);					}		catch (Exception ex) {			ex.printStackTrace();		}	}		/**	 * Traverse to the next element in the History	 * Calls traverseHistory with the appropriate arguments (entity, ontology, imports)	 * as obtained from the historyEntity list.	 *	 */	protected void nextHistory() {		try {			// get next term from History Array						historyCtr++;			OWLNamedObject namedObj = historyEntity[historyCtr][0];			OWLOntology histOnt = (OWLOntology) historyEntity[historyCtr][1];			boolean imports = historyImports[historyCtr];			if (historyEntity[historyCtr+1][0]==null) nextBtn.setEnabled(false);			this.traverseHistory(namedObj, histOnt, imports);						// if next was pressed, previous button must be enabled			prevBtn.setEnabled(true);		}		catch (Exception ex) {			ex.printStackTrace();		}	}		/**	 * Apply changes when user edits text directly (abstract syntax, rdf/xml..)	 */ 	public void applyDirectTextChanges() {		try {				// if uncommitted changes exist on the list you need to commit those instead			if (swoopModel.getUncommittedChanges().size()>0) {				System.out.println("Applied Uncommited Changes alone - skipping text changes...");				return;			}						// get the entity description only 													int index = termDisplayPane.getSelectedIndex();			SwoopEntityRenderer renderer = (SwoopEntityRenderer) renderers.get(index);			// New approach for RDF/XML renderer			if (renderer instanceof RDFXMLEntityRenderer) {								OWLEntity currEntity = swoopModel.getSelectedEntity();				OWLOntology currOnt = swoopModel.getSelectedOntology();								// get new entity code				XmlEditorPane editor = (XmlEditorPane) editors.get(index);				String newEntityCode = editor.getText();				//String currEntityURI = currEntity.getURI().toString();								// save entity checkpoint if option is enabled BEFORE operation    				if (swoopModel.getEnableAutoSaveChkPts()) {    					swoopHandler.changeLog.saveCheckPoint(ChangeLog.ENTITY_SCOPE, swoopModel.selectedOntology, swoopModel.selectedEntity, "Saving State BEFORE change made directly in RDF/XML code", null);    				}				    				// --- call swoopModel function to perform RDF edit ---				boolean update = swoopModel.replaceEntityRDF(currOnt, currEntity, newEntityCode);	    						if (update) {	    			// save entity checkpoint if option is enabled AFTER operation	    			if (swoopModel.getEnableAutoSaveChkPts()) {	    				swoopHandler.changeLog.saveCheckPoint(ChangeLog.ENTITY_SCOPE, swoopModel.selectedOntology, swoopModel.selectedEntity, "Saving State AFTER change made directly in RDF/XML code", null);	    			}	    		}	    		else {	    			JOptionPane.showMessageDialog(this, "Error parsing RDF/XML source code", "Parse Error", JOptionPane.ERROR_MESSAGE);	    		}	    			    		applyChangesBtn.setEnabled(false);			}						else if (renderer instanceof AbstractSyntaxEntityRenderer) {								// get current selections				OWLEntity currEntity = swoopModel.getSelectedEntity();				OWLOntology currOnt = swoopModel.getSelectedOntology();								// get new entity code				JEditorPane editor = (JEditorPane) editors.get(index);				String newEntityStr = editor.getText();				String newEntityCode = editor.getText(1,editor.getDocument().getLength()-1);				// get string after entity name				String str = "";				if (currEntity instanceof OWLClass) str = "Class"; 				else if (currEntity instanceof OWLObjectProperty) str = "ObjectProperty";				else if (currEntity instanceof OWLDataProperty) str = "DataProperty";				else if (currEntity instanceof OWLIndividual) str = "Individual";				newEntityCode = newEntityCode.substring(newEntityCode.indexOf(str), newEntityCode.lastIndexOf(")"));								// clone ontology, remove entity and then get its AS code//				OWLOntology copy = swoopModel.cloneOntology(currOnt);//				OWLEntity ent = swoopModel.getEntity(copy, currEntity.getURI(), true);//				RemoveEntity re = new RemoveEntity(copy, ent, null);//				re.accept((ChangeVisitor) copy);								StringWriter st1 = new StringWriter();//				org.semanticweb.owl.io.abstract_syntax.Renderer asRend = //					new org.semanticweb.owl.io.abstract_syntax.Renderer();//				asRend.renderOntology(copy, st1);				AbstractSyntaxEntityRenderer asRend = (AbstractSyntaxEntityRenderer) renderer;				asRend.setNoLinks(true);				asRend.renderOntology(swoopModel, currOnt, currEntity, newEntityCode, st1);//				String ontStr = st1.toString();//				ontStr = ontStr.substring(0, ontStr.lastIndexOf(")"));//				newEntityCode = ontStr + newEntityCode + ")";;				String newOntCode = st1.toString();								// get oldEntity code as well//				StringWriter st2 = new StringWriter();//				org.semanticweb.owl.io.abstract_syntax.Renderer as = new org.semanticweb.owl.io.abstract_syntax.Renderer();//				as.renderOntology(currOnt, st2);//				String oldEntityCode = st2.toString(); 					//				String currEntityURI = currEntity.getURI().toString();								// save entity checkpoint if option is enabled BEFORE operation    			if (swoopModel.getEnableAutoSaveChkPts()) {    				swoopHandler.changeLog.saveCheckPoint(ChangeLog.ENTITY_SCOPE, swoopModel.selectedOntology, swoopModel.selectedEntity, "Saving State BEFORE change made directly in RDF/XML code", null);    			}				    			// --- call update method in swoopModel				boolean update = swoopModel.replaceEntityAS(currOnt, newOntCode);	    						if (update) {	    			// save entity checkpoint if option is enabled AFTER operation	    			if (swoopModel.getEnableAutoSaveChkPts()) {	    				swoopHandler.changeLog.saveCheckPoint(ChangeLog.ENTITY_SCOPE, swoopModel.selectedOntology, swoopModel.selectedEntity, "Saving State AFTER change made directly in RDF/XML code", null);	    			}	    		}	    		else {	    			JOptionPane.showMessageDialog(this, "Error parsing Abstract Syntax source code", "Parse Error", JOptionPane.ERROR_MESSAGE);	    				    		}	    			    		applyChangesBtn.setEnabled(false);			}							else if ( renderer instanceof TurtleEntityRenderer )			{				// save old qname state				boolean oldQNameState = swoopModel.getShowQNames();								OWLEntity currEntity = swoopModel.getSelectedEntity();				OWLOntology currOnt = swoopModel.getSelectedOntology();				String baseURI = currOnt.getLogicalURI().toString();								// get new entity code				JEditorPane editor = (JEditorPane) editors.get(index);				Document d = editor.getDocument();				String newEntityCode = d.getText( 1, d.getLength() - 1 ).trim();												// removing strange characters that makes TurtleParser fail				char c = 160;				newEntityCode = newEntityCode.replaceAll( ""+c, " " );								// segment newEntityCode to have the same line breaks as displayed				newEntityCode = Turtle2RDFConverter.addLineInfo( newEntityCode, editor.getText() );								String rdfCode = Turtle2RDFConverter.turtle2RDF( newEntityCode, baseURI, this, editor );								// if parse failed, stop				if ( rdfCode == null )				{					return;				}								boolean update = false;								if (rdfCode!=null) {					String currEntityURI = currEntity.getURI().toString();										// save entity checkpoint if option is enabled BEFORE operation	    			if (swoopModel.getEnableAutoSaveChkPts()) {	    				swoopHandler.changeLog.saveCheckPoint(ChangeLog.ENTITY_SCOPE, swoopModel.selectedOntology, swoopModel.selectedEntity, "Saving State BEFORE change made directly in RDF/XML code", null);	    			}						    			// --- call swoopModel function to perform RDF edit ---					update = swoopModel.replaceEntityRDF(currOnt, currEntity, rdfCode);				}				 				if (update) {	    			// save entity checkpoint if option is enabled AFTER operation	    			if (swoopModel.getEnableAutoSaveChkPts()) {	    				swoopHandler.changeLog.saveCheckPoint(ChangeLog.ENTITY_SCOPE, swoopModel.selectedOntology, swoopModel.selectedEntity, "Saving State AFTER change made directly in RDF/XML code", null);	    			}	    		}	    		else {	    			JOptionPane.showMessageDialog(this, "Error parsing RDF/XML source code converted from TURTLE ", "Parse Error", JOptionPane.ERROR_MESSAGE);	    		}								applyChangesBtn.setEnabled(false);			}		}		catch (Exception e) {			e.printStackTrace();		}										}		public void actionPerformed(ActionEvent e) {		// when user presses ENTER while typing in lookupFld		if ((e.getSource()==lookupFld) || (e.getSource()==lookupBtn)) {			lookupTerm();		}		else		if (e.getSource()==addClassBtn) {			addNewClass(swoopModel.getSelectedOntology());		}		else		if (e.getSource()==addPropBtn) {			addNewProperty(swoopModel.getSelectedOntology());		}		else		if (e.getSource()==addIndBtn) {			addNewIndividual(swoopModel.getSelectedOntology());		}		else		if (e.getSource()==addGCIBtn) {			popupNewGCI();		}		else		// remove term button clicked		if (e.getSource()==remTermBtn) {						List removeEntities = new ArrayList();						// if tab pane is showing a class/property tree			// get selected tree nodes			if (termTabPane.getSelectedIndex()<2) {				JTree tree = trees[termTabPane.getSelectedIndex()];				if (tree.getSelectionCount()==1) {					removeEntities.add(swoopModel.getSelectedEntity());				}				else { 					TreePath[] paths = tree.getSelectionPaths();					for (int i=0; i<paths.length; i++) {						TreePath path = paths[i];						Object obj = ((DefaultMutableTreeNode) path.getLastPathComponent()).getUserObject();						if (obj instanceof Set) removeEntities.addAll((Set) obj);					}				}				}			else {				// if tab pane is showing alphabetical list				// remove GCI separately				if (termList.getSelectedValue() instanceof OWLSubClassAxiom) {					swoopModel.removeGCI(swoopModel.selectedOntology, termList.getSelectedValues(), true);					return;				}				//*** Note RETURN statement above				if (termList.getSelectedValues().length==1) {					removeEntities.add(swoopModel.selectedEntity);				}				else {					Object[] obj = termList.getSelectedValues();					for (int i=0; i<obj.length; i++) {						removeEntities.add((OWLEntity) obj[i]);					}				}			}						// now remove entities depending on whether single entity is to be removed			// or a batch of selected entities are to be removed			if (removeEntities.size()==1) {				// remove single OWL entity				removeEntity(swoopModel.getSelectedOntology(), swoopModel.getSelectedEntity(), true);			}			else {				// batch removal of entities (selected in tree)				String title = "Batch Removal of OWL Entities";				int options = JOptionPane.YES_NO_OPTION;				int result = JOptionPane.showConfirmDialog(this, "This is going to remove ALL References of the Selected Entities from the Ontology. Continue?", title, options);								if (result == JOptionPane.YES_OPTION) {					for (Iterator iter = removeEntities.iterator(); iter.hasNext();) {						OWLEntity entity = (OWLEntity) iter.next();						removeEntity(swoopModel.getSelectedOntology(), entity, false);					}				}			}		}				if (e.getSource()==renameTermBtn) {				try {				OWLEntity entity = swoopModel.getSelectedEntity();				String name = swoopModel.shortForm(entity.getURI());				if (name.indexOf(":")>=0) name = name.substring(name.indexOf(":")+1, name.length());				String newTerm = JOptionPane.showInputDialog(	                    null,	                    new Object[] {	          	                    		"(Note: All references of the entity will be renamed)",								"Current Name (ID): " + name,							"Enter New Name (ID):"								                    },	                    "Rename OWL Entity",	                    JOptionPane.PLAIN_MESSAGE	            );								if (newTerm!=null) {					newTerm = newTerm.replaceAll(" ", "_");					// check if name already used in ontology					OWLOntology ont = swoopModel.getSelectedOntology();					URI newURI = new URI(ont.getURI().toString()+"#"+newTerm);					if (swoopModel.getEntity(ont, newURI, true)!=null) {						JOptionPane.showMessageDialog(this, "URI already in use for another OWL Entity", "Rename Error" , JOptionPane.ERROR_MESSAGE);						return;					}					else swoopModel.renameOWLEntity(swoopModel.getSelectedOntology(), entity, newTerm);									}			}			catch (Exception ex) {				ex.printStackTrace();			}		}				// when user presses the Previous Button (History)		if (e.getSource()==prevBtn) {				previousHistory();		}				// when user presses the Next Button (History)		if (e.getSource()==nextBtn) {								nextHistory();									}				// if user checks on search all ontologies		if (e.getSource()==searchAllChk) {			swoopModel.setLookupAllOnts(searchAllChk.isSelected());		}				// if user checks on enable debugging		if (e.getSource()==debugChk) {						if (debugChk.isSelected()) {			    int answer = JOptionPane.YES_OPTION;			    JPanel debugPanel = new JPanel();			    debugPanel.setLayout(new GridLayout(2,1));			    JLabel debugLbl = new JLabel("Debugging may slow down browsing considerably. Are you sure you want to continue?");			    debugPanel.add(debugLbl);			    JCheckBox switchPellet = new JCheckBox("Also switch to Pellet Reasoner?");			    switchPellet.setSelected(true);			    if (!(swoopModel.getReasoner() instanceof PelletReasoner)) debugPanel.add(switchPellet);			    			    // confirm the user before enabling debugging

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -