popupeditatom.java

来自「Semantic Web Ontology Editor」· Java 代码 · 共 627 行 · 第 1/2 页

JAVA
627 行
字号
    
    public void refreshClassesAndProps()  {
        itemBox.setEnabled( true );
        
        try {
            ((DefaultComboBoxModel) this.itemBox.getModel()).removeAllElements();
            
	        if ( itemType == 0 ) {
	            classMod = (DefaultComboBoxModel) this.itemBox.getModel();
	            classMod.removeAllElements();
	            Set classSet = currOnt.getClasses();	            
	            // create a vector for sorting
	            Vector vector = new Vector( classSet );
	            Collections.sort( vector, new OWLEntityAlphaComparator() );
	            
		        for ( Iterator c = vector.iterator(); c.hasNext(); ) {
		            OWLClass curr = (OWLClass) c.next();
		            
		            if ( !curr.getURI().toString().startsWith( swrlURI ) ) 
		                classMod.addElement( curr );
		        }
	        } else if ( itemType == 1 ) {
		        propMod = (DefaultComboBoxModel) this.itemBox.getModel();
		        propMod.removeAllElements();
	            Set propSet = currOnt.getObjectProperties();
	            // create a vector for sorting
	            Vector vector = new Vector( propSet );
	            Collections.sort( vector, new OWLEntityAlphaComparator() );
	            
		        for ( Iterator p = vector.iterator(); p.hasNext(); ) {
		            OWLObjectProperty curr = (OWLObjectProperty) p.next();
		            
		            if ( !curr.getURI().toString().startsWith( swrlURI ) ) 
		                propMod.addElement( curr );
		        }
	        } else if ( itemType == 2 ) {
	            propMod = (DefaultComboBoxModel) this.itemBox.getModel();
	            propMod.removeAllElements();
	            Set propSet = currOnt.getDataProperties();
	            // create a vector for sorting
	            Vector vector = new Vector( propSet );
	            Collections.sort( vector, new OWLEntityAlphaComparator() );
	            
		        for ( Iterator p = propSet.iterator(); p.hasNext(); ) {
		            OWLDataProperty curr = (OWLDataProperty) p.next();
		            
		            if ( !curr.getURI().toString().startsWith( swrlURI ) ) 
		                propMod.addElement( curr );
		        } 
	        }
	        
        } catch ( OWLException e ) {}
        
        if ( itemBox.getItemCount() == 0 ) {
            ((DefaultComboBoxModel) itemBox.getModel()).addElement( "No entities found in ontology." );
            itemBox.setEnabled( false );
        }
    }
    
    public void fillValues()  {
        
        DefaultComboBoxModel cbm = (DefaultComboBoxModel) ontBox.getModel();
        for ( Iterator i = model.getOntologies().iterator(); i.hasNext(); ) {
            try {
                cbm.addElement( ((OWLOntology) i.next()).getURI() );
            } catch (OWLException e) {}
        }
        
        DefaultComboBoxModel ind1 = (DefaultComboBoxModel) ind1Box.getModel();
        DefaultComboBoxModel ind2 = (DefaultComboBoxModel) ind2Box.getModel();
        try {
            for ( Iterator i = currOnt.getIndividuals().iterator(); i.hasNext(); ) {
                OWLIndividual curr = (OWLIndividual) i.next();
                
                if ( containsVars ) {
                    if ( !variableSet.contains( curr ) && !curr.isAnonymous() ) {
                        ind1.addElement( curr );
                        ind2.addElement( curr ); 
                    }
                } else if ( !curr.isAnonymous() ) {
                    ind1.addElement( curr );
                    ind2.addElement( curr );
                }
            }
            
        } catch ( OWLException e ) {}
        
        refreshClassesAndProps();
    }
    
    public void setSecondArgumentEnabled( boolean enabled ) {
        indButton2.setEnabled( enabled );
        varButton2.setEnabled( enabled );
        ind2Box.setEnabled( enabled );
        //var2Box.setEnabled( enabled );
        var2TextField.setEnabled(enabled);
    }
    
    /* (non-Javadoc)
     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
     */
    public void actionPerformed(ActionEvent arg0) {

    	try {
    	
    	if ( arg0.getSource() == freeFormBox )
    	{
    		boolean isFree = freeFormBox.getModel().isSelected();
    		if ( isFree )
    		{
    			System.out.println( "adding freeFormCombo");
    			formPanel.remove( itemBox );
    			formPanel.add( freeFormCombo );
    	        SpringUtilities.makeCompactGrid(formPanel, //parent
    	                4, 2,
    	                5, 5,  //initX, initY
    	                5, 5); //xPad, yPad
    	        formPanel.repaint();
    			formPanel.revalidate();
    		
    		}
    		else
    		{
    			System.out.println( "adding itemBox");
    			formPanel.remove( freeFormCombo );
    			formPanel.add( itemBox );
    	        SpringUtilities.makeCompactGrid(formPanel, //parent
    	                4, 2,
    	                5, 5,  //initX, initY
    	                5, 5); //xPad, yPad
    	        formPanel.repaint();
    			formPanel.revalidate();
    		}
    		return;
    	}
        if ( arg0.getSource() == addButton || arg0.getSource() == addCloseButton ) {
            int index = atomTypeBox.getSelectedIndex();
            OWLDataFactoryImpl fac = OWLDataFactoryImpl.getInstance( new OWLConnectionImpl() );

            boolean isFreeform = freeFormBox.getModel().isSelected();
            
            OWLRuleDataFactoryImpl test = new OWLRuleDataFactoryImpl();
            OWLRuleAtom atom = null;
            OWLOntology ontology = model.getOntology( (URI) ontBox.getModel().getSelectedItem());
            
            // make new class atom
            if ( index == CLASS_ATOM_TYPE ) {
                try 
				{
                	OWLRuleIVariable var1 = test.getOWLRuleIVariable( URI.create(var1TextField.getText()));
                    if ( buttons1.getSelection().equals( varButton1.getModel() ) ) // variable 
                    {
                    	if ( isFreeform )
                    	{
                    		URI uri =  new URI((String)freeFormCombo.getSelectedItem());
                    		atom = test.getOWLRuleClassAtom( fac.getOWLClass( uri ), var1 );
                    	}		
                    	else
                    		atom = test.getOWLRuleClassAtom( (OWLClass) itemBox.getSelectedItem(), var1 );
                    } 
                    else  // individual
                    {
                		OWLRuleIndividual ind1 = test.getOWLRuleIndividual( (OWLIndividual) this.ind1Box.getSelectedItem() );
                    	if ( isFreeform )
                    	{
                    		URI uri =  new URI((String)freeFormCombo.getSelectedItem());
                    		atom = test.getOWLRuleClassAtom( fac.getOWLClass( uri ), ind1 );
                    	}		
                    	else
                    		atom = test.getOWLRuleClassAtom( (OWLClass) itemBox.getSelectedItem(), ind1 );
                    }
                    System.out.println( atom );
            	
                } catch ( OWLException e ) {}
                
            } 
            else if ( index == OBJECT_PROPERTY_ATOM_TYPE )
            {                
                if ( buttons1.getSelection().equals( varButton1.getModel() ) ) // first arg is var 
                {
                	OWLRuleIVariable var1 = test.getOWLRuleIVariable( URI.create(var1TextField.getText()));               
                    if ( buttons2.getSelection().equals( varButton2.getModel() ) ) // second arg is var
                    {
                		OWLRuleIVariable var2 = test.getOWLRuleIVariable(URI.create(var2TextField.getText()) );
                    	if ( isFreeform )
                    	{
                    		URI uri =  new URI((String)freeFormCombo.getSelectedItem());
                    		atom = test.getOWLRuleObjectPropertyAtom( var1, fac.getOWLObjectProperty( uri ), var2  );	
                    	}
                    	else
                    		atom = test.getOWLRuleObjectPropertyAtom( var1, (OWLObjectProperty) itemBox.getSelectedItem(), var2  );
                    } 
                    else // second arg is ind
                    {
                		OWLRuleIndividual ind2 = test.getOWLRuleIndividual( (OWLIndividual) this.ind2Box.getSelectedItem() );
                    	if ( isFreeform )
                    	{
                    		URI uri =  new URI((String)freeFormCombo.getSelectedItem());
                    		atom = test.getOWLRuleObjectPropertyAtom( var1, fac.getOWLObjectProperty( uri ), ind2  );
                    	}
                    	else
                    		atom = test.getOWLRuleObjectPropertyAtom( var1, (OWLObjectProperty) itemBox.getSelectedItem(), ind2  );
                    }
                }
                else // first arg is ind
                {
                    OWLRuleIndividual ind1 = test.getOWLRuleIndividual( (OWLIndividual) this.ind1Box.getSelectedItem() );                    
                    if ( buttons2.getSelection().equals( varButton2.getModel() ) ) // second arg is var
                    {
                		OWLRuleIVariable var2 = test.getOWLRuleIVariable( URI.create(var2TextField.getText()) );
                    	if ( isFreeform )
                    	{
                    		URI uri =  new URI((String)freeFormCombo.getSelectedItem());
                    		atom = test.getOWLRuleObjectPropertyAtom( ind1, fac.getOWLObjectProperty( uri ), var2  );
                    	}
                    	else
                    		atom = test.getOWLRuleObjectPropertyAtom( ind1, (OWLObjectProperty) itemBox.getSelectedItem(), var2  );
                    }
                    else // second arg is ind
                    {
                		OWLRuleIndividual ind2 = test.getOWLRuleIndividual( (OWLIndividual) this.ind2Box.getSelectedItem() );
                    	if ( isFreeform )
                    	{
                    		URI uri =  new URI((String)freeFormCombo.getSelectedItem());
                    		atom = test.getOWLRuleObjectPropertyAtom( ind1, fac.getOWLObjectProperty( uri ), ind2  );                    		
                    	}
                    	else
                    		atom = test.getOWLRuleObjectPropertyAtom( ind1, (OWLObjectProperty) itemBox.getSelectedItem(), ind2  );
                    }
                }
            }
            
            System.out.println( atom );
            
//          adding the atom to the rule
            
            parent.addAtom( atom );
            
            if ( arg0.getSource() == addCloseButton ) {
                this.setVisible(false);
            } else {
                
            }
        } else if ( arg0.getSource() == cancelButton ) {
            this.setVisible(false);
        } 
    	 } catch ( Exception e ) {}
    }

    /* (non-Javadoc)
     * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
     */
    public void itemStateChanged(ItemEvent arg0) {
        if ( arg0.getSource() == ontBox ) {
            currOnt = model.getOntology( (URI) ontBox.getModel().getSelectedItem() );
            
            // find variable class
            containsVars = false;
            variableSet = null;
            try {
	            for ( Iterator c = currOnt.getClasses().iterator(); c.hasNext(); ) {
	                OWLClass curr = (OWLClass) c.next();
	                if ( curr.getURI().equals( URI.create( swrlURI + "Variable" ) ) ) {
	                    System.out.println( "Variable found" );
	                    
	                    containsVars = true;
	                    
	                    variableSet = model.getReasoner().allInstancesOf( curr );
	                    for ( Iterator v = variableSet.iterator(); v.hasNext(); ) {
	                    	
	                        OWLIndividual currVar = (OWLIndividual) v.next();
	                        
	                        /*
	                        ((DefaultComboBoxModel) var1Box.getModel()).addElement( currVar );
	                        ((DefaultComboBoxModel) var2Box.getModel()).addElement( currVar );
	                        (*/
	                    }
	                    
	                    break;
	                }
	            }
	            
            } catch ( Exception e ) {}
            
            refreshClassesAndProps();
            
        } else if ( arg0.getSource() == this.atomTypeBox ) {
            int index = atomTypeBox.getSelectedIndex();
            
            this.itemType = index;
            
            refreshClassesAndProps();
            
            if ( index == 0 ) {
                this.itemLabel.setText( "Class:" );
                this.setSecondArgumentEnabled( false );
            } else {
                this.itemLabel.setText( "Property:" );
                this.setSecondArgumentEnabled( true );
            }

        } 
    }

    /* (non-Javadoc)
     * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent)
     */
    public void stateChanged(ChangeEvent arg0) {
       
    }

}

⌨️ 快捷键说明

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