lookandfeelchooser.java
来自「JavaExplorer是一个独立于平台的浏览器」· Java 代码 · 共 231 行
JAVA
231 行
/*
* Created on 16 oct. 03
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package javaexplorer.util.laf;
import java.io.Serializable;
import javaexplorer.util.Log;
import javaexplorer.util.buffer.*;
import objectxml.*;
import javaexplorer.util.comparator.ModelComparator;
/**
* @author veeb7280
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class LookAndFeelChooser extends Buffer implements Xmlizable, Serializable {
private LookAndFeelModel _currentModel = new LookAndFeelModel();
private static LookAndFeelChooser _chooser = new LookAndFeelChooser();
/**
* Constructeur par d閒aut n閏essaire pour la Xmlisation
*
*/
public LookAndFeelChooser(){
setComparator(new ModelComparator());
}
public LookAndFeelModel getModel(String modelName){
if( modelName == null ) return null;
for( int i = 0; i < length(); i++ ){
LookAndFeelModel model = (LookAndFeelModel)getAt(i);
if( modelName.equals(model.getModelName())){
return model;
}
}
return null;
}
public void removeByName(String modelName){
LookAndFeelModel tmpModel = new LookAndFeelModel();
tmpModel.setModelName(modelName);
remove(tmpModel);
}
public LookAndFeelModel getCurrentModel(){
if( _currentModel == null ){
return new LookAndFeelModel();
}
return _currentModel;
}
public void setCurrentModel(LookAndFeelModel model){
add(model);
_currentModel = model;
}
public LookAndFeelModel[] get(){
Object[] obj = getArray();
if( obj == null ) return null;
LookAndFeelModel[] list = new LookAndFeelModel[ obj.length ];
System.arraycopy(obj, 0, list, 0, obj.length);
return list;
}
/* (non-Javadoc)
* @see objectxml.Xmlizable#writeXMLProperties()
*/
public XMLContent writeXMLProperties() {
XMLContent root = new XMLContent("ClassName", getClass().getName());
//Pas de param鑤res constructeurs
//Propri閠閟
XMLContent content = new XMLContent("Properties");
XMLContent xc = new XMLContent("Current Model");
xc.add(_currentModel.writeXMLProperties());
content.add(xc);
xc = new XMLContent("Model List");
//On rajoute de toute facon le mod鑜e par d閒aut
add(new LookAndFeelModel());
for(int i = 0; i < length(); i++ ){
xc.add(((LookAndFeelModel)getAt(i)).writeXMLProperties());
}
content.add(xc);
root.add(content);
return root;
}
/* (non-Javadoc)
* @see objectxml.Xmlizable#readXMLProperties(objectxml.XMLContent)
*/
public void readXMLProperties(XMLContent content) {
if (content == null) {
return;
}
XMLContent prop = null;
prop = content.getChild("Current Model");
LookAndFeelModel currentModel = null;
try{
if (prop != null) {
ObjectXml ox = new ObjectXml();
//On r閏up鑢e le premier fils qui est la valeur Options
currentModel = (LookAndFeelModel) (ox.xmlContentToXmlizable((prop.getChildren())[0]));
if( currentModel != null ) this.setCurrentModel( currentModel );
}
else{
Log.addDebug("No Current Look and Feel found using default");
this.setCurrentModel(new LookAndFeelModel());
}
}catch(Exception e ){
javaexplorer.util.Log.addError(e);
Log.addDebug("Incorrect Look And Feel Format. Using Default");
this.setCurrentModel(new LookAndFeelModel());
}
//R閏up閞ation de la liste des modeles stock閟
prop = content.getChild("Model List");
XMLContent[] list = prop.getChildren();
if( list != null ){
for( int i = 0; i < list.length; i++ ){
LookAndFeelModel model = getFromContent(list[i]);
add(model);
}
}
}
private LookAndFeelModel getFromContent(XMLContent prop){
LookAndFeelModel model = null;
try{
if (prop != null) {
ObjectXml ox = new ObjectXml();
//On r閏up鑢e le premier fils qui est la valeur Options
model = (LookAndFeelModel) (ox.xmlContentToXmlizable(prop));
}
}catch(Exception e ){
javaexplorer.util.Log.addError(e);
Log.addDebug("Incorrect Look And Feel Format from XMLContent " + prop);
model = null;
}
return model;
}
/*
public static void main(String argv[]){
LookAndFeelChooser lfc = new LookAndFeelChooser();
LookAndFeelModel model = null;
model = new LookAndFeelModel();
model.setModelName("Toto");
lfc.add(model);
model = new LookAndFeelModel();
model.setModelName("Mon beau modele");
lfc.add(model);
model = new LookAndFeelModel();
lfc.add(model);
for( int i = 0; i < lfc.length(); i++ ){
Log.addDebug(lfc.getAt(i));
}
//Essai du retour de buffer
Log.addDebug(lfc.get());
}
*/
public LookAndFeelChooser duplicate(){
//Retourne un chooser ayant les caracteristiques de l'objet en cours
LookAndFeelChooser lfc = new LookAndFeelChooser();
LookAndFeelModel lfm = null;
for( int i = 0; i < length(); i++ ){
lfm = new LookAndFeelModel();
lfm.applyModelValues((LookAndFeelModel) getAt(i));
lfc.add(lfm);
}
//Assignation de l'item par d閒aut
lfc.setCurrentModel(lfc.getModel(getCurrentModel().getModelName()));
return lfc;
}
public static LookAndFeelChooser getChooser(){
return _chooser;
}
public static void updateChooser(LookAndFeelChooser chooser){
if( chooser == null ) return;
_chooser.clear();
LookAndFeelModel lfm = null;
for( int i = 0; i < chooser.length(); i++ ){
lfm = new LookAndFeelModel();
lfm.applyModelValues((LookAndFeelModel) chooser.getAt(i));
_chooser.add(lfm);
}
//Assignation de l'item par d閒aut
_chooser.setCurrentModel(_chooser.getModel(chooser.getCurrentModel().getModelName()));
}
public static LookAndFeelModel getLaFModel(){
return _chooser.getCurrentModel();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?