popupeditatom.java
来自「Semantic Web Ontology Editor」· Java 代码 · 共 627 行 · 第 1/2 页
JAVA
627 行
/*
* Created on Jun 8, 2005
*/
package org.mindswap.swoop.popup;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.net.URI;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.mindswap.swoop.SwoopModel;
import org.mindswap.swoop.renderer.SwoopCellRenderer;
import org.mindswap.swoop.utils.ui.SpringUtilities;
import org.semanticweb.owl.impl.model.OWLConnectionImpl;
import org.semanticweb.owl.impl.model.OWLDataFactoryImpl;
import org.semanticweb.owl.impl.rules.OWLRuleDataFactoryImpl;
import org.semanticweb.owl.model.OWLClass;
import org.semanticweb.owl.model.OWLDataProperty;
import org.semanticweb.owl.model.OWLEntity;
import org.semanticweb.owl.model.OWLException;
import org.semanticweb.owl.model.OWLIndividual;
import org.semanticweb.owl.model.OWLObjectProperty;
import org.semanticweb.owl.model.OWLOntology;
import org.semanticweb.owl.rules.OWLRule;
import org.semanticweb.owl.rules.OWLRuleAtom;
import org.semanticweb.owl.rules.OWLRuleIVariable;
import org.semanticweb.owl.rules.OWLRuleIndividual;
/**
* @author Daniel Hewlett
*
*/
public class PopupEditAtom extends JFrame implements ActionListener, ItemListener, ChangeListener
{
class OWLEntityAlphaComparator implements Comparator
{
public int compare(Object arg0, Object arg1)
{
OWLEntity ent1 = (OWLEntity)arg0;
OWLEntity ent2 = (OWLEntity)arg1;
try
{
String ent1str = ent1.getURI().toString();
String ent2str = ent2.getURI().toString();
return ent1str.compareTo( ent2str );
}
catch( Exception e )
{ e.printStackTrace(); }
return -1;
}
public boolean equals( Object obj )
{ return (this.compare( this, obj ) == 0 ); }
}
String[] types = {"Class Atom", "Object Property Atom", "Datatype Property Atom", "Individual Identity Atom"}; // built-ins not supported yet
String swrlURI = "http://www.w3.org/2003/11/swrl#";
//boolean fresh;
boolean containsVars = false; // true if the currOnt contains SWRL variables
SwoopModel model;
int itemType = 0; // 0 = classes, 1 = objprops, 2 = dprops, 3 = sameAs/differentFrom, 4 = builtIn
final int CLASS_ATOM_TYPE = 0;
final int OBJECT_PROPERTY_ATOM_TYPE = 1;
final int DATATYPE_PROPERTY_ATOM_TYPE = 2;
final int SAME_AS_DIFFERENT_FROM_ATOM_TYPE = 3;
final int BUILT_IN_ATOM_TYPE = 4;
JPanel formPanel = new JPanel();
JComboBox atomTypeBox;
JComboBox ontBox;
JComboBox itemBox;
// JComboBox var1Box;
JComboBox ind1Box;
// JComboBox var2Box;
JComboBox ind2Box;
JRadioButton varButton1;
JRadioButton indButton1;
JRadioButton varButton2;
JRadioButton indButton2;
ButtonGroup buttons1;
ButtonGroup buttons2;
JButton addButton;
JButton addCloseButton;
JButton cancelButton;
JTextField var1TextField;
JTextField var2TextField;
JLabel itemLabel;
JLabel atomLabel;
JComboBox freeFormCombo = new JComboBox();
JCheckBox freeFormBox = new JCheckBox();
OWLOntology currOnt;
Set variableSet = null;
DefaultComboBoxModel classMod;
DefaultComboBoxModel propMod;
PopupAddRule parent;
OWLRule rule = null;
OWLRuleAtom targetAtom;
public PopupEditAtom( SwoopModel mod, OWLRule rule, PopupAddRule parent ) {
model = mod;
this.parent = parent;
this.rule = rule;
targetAtom = null;
currOnt = model.getSelectedOntology();
setupUI();
fillValues();
this.setSize( 400, 300 );
}
public PopupEditAtom( SwoopModel mod, OWLRule rule, PopupAddRule parent, OWLRuleAtom targetAtom ) {
this.targetAtom = targetAtom; // TODO make this do something
model = mod;
this.parent = parent;
this.rule = rule;
currOnt = model.getSelectedOntology();
setupUI();
fillValues();
this.setSize( 400, 300 );
}
private void setupUI() {
this.setSize( 400, 300 );
atomTypeBox = new JComboBox( types );
atomTypeBox.addItemListener( this );
ontBox = new JComboBox();
//ontBox.setRenderer( new CellRenderer() );
ontBox.addItemListener( this );
itemBox = new JComboBox();
itemBox.setRenderer( new SwoopCellRenderer( model ) );
JLabel typeLabel = new JLabel( "Atom Type:" );
JLabel ontLabel = new JLabel( "Ontology:" );
itemLabel = new JLabel( "Class:" );
freeFormCombo.setEditable( true );
freeFormCombo.setSelectedItem( "" );
formPanel.setLayout( new SpringLayout() );
formPanel.add( typeLabel );
formPanel.add( atomTypeBox );
formPanel.add( ontLabel );
formPanel.add( ontBox );
freeFormBox.addActionListener( this );
formPanel.add( new JLabel("Freeform:") );
formPanel.add( freeFormBox );
formPanel.add( itemLabel );
formPanel.add( itemBox );
SpringUtilities.makeCompactGrid(formPanel, //parent
4, 2,
5, 5, //initX, initY
5, 5); //xPad, yPad
JPanel vPan1 = new JPanel();
vPan1.setLayout( new SpringLayout() );
vPan1.setBorder( new LineBorder( Color.BLACK, 1 ) );
// var1Box = new JComboBox();
//var1Box.setEditable( true );
// var1Box.setRenderer( new VariableRenderer( model ) );
ind1Box = new JComboBox();
ind1Box.setRenderer( new SwoopCellRenderer( model ) );
varButton1 = new JRadioButton( "Variable" );
indButton1 = new JRadioButton( "Individual" );
vPan1.add( varButton1 );
// vPan1.add( var1Box );
var1TextField = new JTextField();
vPan1.add(var1TextField);
vPan1.add( indButton1 );
vPan1.add( ind1Box );
buttons1 = new ButtonGroup();
buttons1.add( varButton1 );
buttons1.add( indButton1 );
buttons1.setSelected( varButton1.getModel(), true );
JPanel vPan2 = new JPanel();
vPan2.setLayout( new SpringLayout() );
vPan2.setBorder( new LineBorder( Color.BLACK, 1 ) );
// var2Box = new JComboBox();
//var2Box.setRenderer( new VariableRenderer( model ) );
ind2Box = new JComboBox();
ind2Box.setRenderer( new SwoopCellRenderer( model ) );
varButton2 = new JRadioButton( "Variable" );
indButton2 = new JRadioButton( "Individual" );
vPan2.add( varButton2 );
//vPan2.add( var2Box );
var2TextField = new JTextField();
vPan2.add(var2TextField);
vPan2.add( indButton2 );
vPan2.add( ind2Box );
buttons2 = new ButtonGroup();
buttons2.add( varButton2 );
buttons2.add( indButton2 );
buttons2.setSelected( varButton2.getModel(), true );
addButton = new JButton( "Add" );
addButton.addActionListener( this );
addCloseButton = new JButton( "Add & Close" );
addCloseButton.addActionListener( this );
cancelButton = new JButton( "Cancel" );
cancelButton.addActionListener( this );
JPanel bottom = new JPanel();
//bottom.setLayout( new BoxLayout( bottom, BoxLayout.X_AXIS ) );
//bottom.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT );
bottom.setBorder( new EmptyBorder( 5, 5, 5, 5 ) );
bottom.add( addCloseButton );
bottom.add( addButton );
bottom.add( cancelButton );
JPanel main = new JPanel();
main.setLayout( new BoxLayout( main, BoxLayout.Y_AXIS ) );
main.add( formPanel );
main.add( vPan1 );
main.add( vPan2 );
SpringUtilities.makeCompactGrid(vPan1, //parent
2, 2,
5, 5, //initX, initY
5, 5); //xPad, yPad
SpringUtilities.makeCompactGrid(vPan2, //parent
2, 2,
5, 5, //initX, initY
5, 5); //xPad, yPad
JPanel labelPane = new JPanel();
JLabel atomLabel = new JLabel( "Atom: " );
labelPane.add( atomLabel );
JLabel atomText = new JLabel();
labelPane.add( atomText );
Container pane = this.getContentPane();
pane.setLayout( new BorderLayout() );
pane.add( main, BorderLayout.NORTH );
pane.add( labelPane, BorderLayout.CENTER );
pane.add( bottom, BorderLayout.SOUTH );
this.setSecondArgumentEnabled( false );
this.setTitle( "Editing Rule Atom" );
this.pack();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?