swooppreferences.java

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

JAVA
506
字号
//The MIT License//// Copyright (c) 2004 Mindswap Research Group, University of Maryland, College Park//// Permission is hereby granted, free of charge, to any person obtaining a copy// of this software and associated documentation files (the "Software"), to// deal in the Software without restriction, including without limitation the// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or// sell copies of the Software, and to permit persons to whom the Software is// furnished to do so, subject to the following conditions://// The above copyright notice and this permission notice shall be included in// all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS// IN THE SOFTWARE.package org.mindswap.swoop.utils;import java.awt.BorderLayout;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Set;import java.util.Timer;import javax.swing.Box;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JComboBox;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JTextField;import javax.swing.border.EtchedBorder;import org.mindswap.swoop.Swoop;import org.mindswap.swoop.SwoopFrame;import org.mindswap.swoop.SwoopModel;/** * @author Aditya Kalyanpur * */public class SwoopPreferences extends JDialog {	SwoopFrame swoopHandler;	SwoopModel swoopModel;	JRadioButton srcPref1, srcPref2, srcPref3, srcPref4;  	Font tahoma = new Font("Tahoma", Font.PLAIN, 12);    Font tahomaB = new Font("Tahoma", Font.BOLD, 12);    JLabel langLbl;    JButton saveBtn, cancelBtn;	JCheckBox iconChk, divChk, codeSelChk, savePtDiskChk, pointChk, logChangesChk, autoRetChk, openLastChk, 				viewOWLVocabularyAsRDFChk, viewRDFVocabularyAsRDFChk,				useLabelChk, useProxyChk,				saveWkspcChk;	JRadioButton rdfxmlRadio, javaRadio;	JTextField countFld, userNameFld, proxyHostFld, proxyPortFld, saveWkspcFileFld, saveWkspcTimeFld;	JComboBox fontsBox, fontSizeBox, reasonerBox, langBox;		public SwoopPreferences(SwoopFrame handler, SwoopModel swoopModel) {				this.swoopHandler = handler;		this.swoopModel = swoopModel;		setModal(true);		setupUI();		loadPreferences();	}		private String getFontSizeDisplay() {		switch (Integer.parseInt(swoopModel.getFontSize())) {			case 1: return "Very Small";			case 2: return "Small"; 			case 3: return "Medium";			case 4: return "Large";			case 5: return "Very Large";		}		return "Medium";	}		public void loadPreferences() {				// update UI based on current preference values		iconChk.setSelected(swoopModel.getShowIcons()); 		divChk.setSelected(swoopModel.getShowDivisions());				fontSizeBox.setSelectedItem(this.getFontSizeDisplay());		fontsBox.setSelectedItem(swoopModel.getFontFace());		countFld.setText(" "+swoopModel.getTreeThreshold()+" ");		codeSelChk.setSelected(swoopModel.isHighlightCode());		useLabelChk.setSelected(swoopModel.getUseLabels());		boolean found = false;		for (int i=0; i<langBox.getItemCount(); i++) {			String l = langBox.getItemAt(i).toString();			if (l.startsWith(swoopModel.getUseLanguage())) {				langBox.setSelectedIndex(i);				found = true;				break;			}		}		if (!found) {			langBox.addItem(swoopModel.getUseLanguage());			langBox.setSelectedItem(swoopModel.getUseLanguage());		}				langLbl.setEnabled(useLabelChk.isSelected());		langBox.setEnabled(useLabelChk.isSelected());				HashMap reasMap = swoopModel.getReasonerMap();		reasonerBox.removeAllItems();		for (Iterator iter = reasMap.keySet().iterator(); iter.hasNext();) {			String name = iter.next().toString();			reasonerBox.addItem(name);					}		reasonerBox.setSelectedItem(swoopModel.getDefaultReasoner().getName());				// load general settings		userNameFld.setText(swoopModel.getUserName());		openLastChk.setSelected(swoopModel.isOpenLastWorkspace());		saveWkspcChk.setSelected(swoopModel.isAutoSaveWkspc());		saveWkspcFileFld.setText(swoopModel.getSaveWkspcFile());		saveWkspcTimeFld.setText(String.valueOf(swoopModel.getSaveWkspcTime()));		useProxyChk.setSelected(swoopModel.getUseHTTPProxy());		proxyHostFld.setEnabled(swoopModel.getUseHTTPProxy());		proxyPortFld.setEnabled(swoopModel.getUseHTTPProxy());		proxyHostFld.setText(swoopModel.getProxyHost());		proxyPortFld.setText(swoopModel.getProxyPort());		logChangesChk.setSelected(swoopModel.isLogChanges());		pointChk.setEnabled(logChangesChk.isSelected());		pointChk.setSelected(swoopModel.getEnableAutoSaveChkPts());		if (Swoop.isWebStart()) savePtDiskChk.setEnabled(false);		savePtDiskChk.setSelected(swoopModel.isSaveCheckPtsDisk());		autoRetChk.setSelected(swoopModel.getEnableAutoRetrieve());		viewOWLVocabularyAsRDFChk.setSelected( swoopModel.isViewOWLVocabularyAsRDF() );		viewRDFVocabularyAsRDFChk.setSelected( swoopModel.isViewRDFVocabularyAsRDF() );				if (swoopModel.getChangeSharingMethod()==SwoopModel.RDFXML_SER) rdfxmlRadio.setSelected(true);		else if (swoopModel.getChangeSharingMethod()==SwoopModel.JAVA_SER) javaRadio.setSelected(true);	}		private void savePreferences() {				// save UI prefs		swoopModel.setShowIcons(iconChk.isSelected(), true);		swoopModel.setShowDivisions(divChk.isSelected());		String size = String.valueOf(fontSizeBox.getSelectedIndex()+1);		swoopModel.setFontFace(fontsBox.getSelectedItem().toString(), false);		if (size.equals("")) size = "2";		if (Integer.parseInt(size)<=0) size = "2";		swoopModel.setFontSize(size);		String count = countFld.getText().trim();		if (count.equals("")) count = "200";		if (Integer.parseInt(count)<=0) count = "200";		swoopModel.setTreeThreshold(count);		swoopModel.setHighlightCode(codeSelChk.isSelected());		swoopModel.setUseLabels(useLabelChk.isSelected());		if (langBox.getSelectedIndex() >=0) {		  String langFld = langBox.getSelectedItem().toString();		  if (langFld.indexOf("(")>=0) langFld = langFld.substring(0, langFld.indexOf("(")).trim();		  swoopModel.setUseLanguage(langFld);		}				// save general prefs		swoopModel.setUserName(userNameFld.getText());		swoopModel.setOpenLastWorkspace(openLastChk.isSelected());		swoopModel.setAutoSaveWkspc(saveWkspcChk.isSelected());		swoopModel.setSaveWkspcFile(saveWkspcFileFld.getText());		float time = Float.parseFloat(saveWkspcTimeFld.getText());		swoopModel.setSaveWkspcTime(time);		swoopModel.setHTTPProxy(useProxyChk.isSelected(), proxyHostFld.getText(), proxyPortFld.getText());		swoopModel.setDefaultReasoner(swoopModel.getReasonerMap(reasonerBox.getSelectedItem().toString()));		swoopModel.setLogChanges(logChangesChk.isSelected());		swoopModel.setEnableAutoSaveChkPts(pointChk.isSelected(), true);		swoopModel.setSaveCheckPtsDisk(savePtDiskChk.isSelected());		swoopModel.setEnableAutoRetrieve(autoRetChk.isSelected());		swoopModel.setViewOWLVocabularyAsRDF( viewOWLVocabularyAsRDFChk.isSelected() );		swoopModel.setViewRDFVocabularyAsRDF( viewRDFVocabularyAsRDFChk.isSelected() );				if (rdfxmlRadio.isSelected()) swoopModel.setChangeSharingMethod(SwoopModel.RDFXML_SER);		else swoopModel.setChangeSharingMethod(SwoopModel.JAVA_SER);				// also save preferences to disk!		swoopModel.savePreferences();	}		private void setupUI() {		Container content = getContentPane();		content.setLayout(new BorderLayout());				// setup UI options panel		JPanel uiPanel = new JPanel();		uiPanel.setLayout(new BorderLayout());				JLabel uiPrefLbl = new JLabel(" UI Options");				uiPrefLbl.setFont(tahomaB);		uiPanel.add(uiPrefLbl, "North");		iconChk = new JCheckBox("Show Icons in Entity Pane (Ctrl-I)");		iconChk.setFont(tahoma);		divChk = new JCheckBox("Show Divisions in Entity Pane (Ctrl-D)");		divChk.setFont(tahoma);		JLabel fontSizeLbl = new JLabel(" Rendered Text Font Size: ");		fontSizeLbl.setFont(tahoma);		JPanel sizePanel = new JPanel();		sizePanel.setLayout(new BorderLayout());		sizePanel.add(fontSizeLbl, "Center");		fontSizeBox = new JComboBox();		fontSizeBox.setFont(tahoma);		fontSizeBox.addItem("Very Small");		fontSizeBox.addItem("Small");		fontSizeBox.addItem("Medium");		fontSizeBox.addItem("Large");		fontSizeBox.addItem("Very Large");		sizePanel.add(fontSizeBox, "East");		fontsBox = new JComboBox();		fontsBox.addItem("Ariel");		fontsBox.addItem("Comic Sans MS");		fontsBox.addItem("Courier New");		fontsBox.addItem("Sans Serif");		fontsBox.addItem("Tahoma");		fontsBox.addItem("Times New Roman");		fontsBox.addItem("Verdana");		fontsBox.setFont(tahoma);		JPanel fontFacePanel = new JPanel();		fontFacePanel.setLayout(new BorderLayout());		fontFacePanel.add(fontsBox, "Center");		JLabel fontFaceLbl = new JLabel("   Font Face: ");		fontFaceLbl.setFont(tahoma);		fontFacePanel.add(fontFaceLbl, "West");		JPanel fontPanel = new JPanel();		fontPanel.setLayout(new GridLayout(1,2));		fontPanel.add(sizePanel);		fontPanel.add(fontFacePanel);				JLabel countLbl = new JLabel(" Expand Class/Property Tree fully when entity count is below this (Default 200)");		countLbl.setFont(tahoma);		JPanel countPanel = new JPanel();		countPanel.setLayout(new BorderLayout());		countFld = new JTextField();		countFld.setFont(tahoma);				countPanel.add(countFld, "West");		countPanel.add(countLbl, "Center");

⌨️ 快捷键说明

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