📄 jremguidoc.java
字号:
/* * JRemCntl - Copyright (C) 2007 Filippo Di Vattimo <fildiv@gmail.com> * See COPYING */package fildiv.jremcntl.server.gui.model;import fildiv.jremcntl.common.core.Config;import fildiv.jremcntl.common.util.JRemUtils;import fildiv.jremcntl.server.core.JRemConfigReader;import fildiv.jremcntl.server.core.JRemConfigWriter;import fildiv.jremcntl.server.core.JRemEnv;import fildiv.jremcntl.server.gui.core.AbstractDocument;import fildiv.jremcntl.server.gui.core.DocumentEvent;import fildiv.jremcntl.server.gui.core.DocumentListener;import fildiv.jremcntl.server.gui.core.IDGen;public class JRemGUIDoc extends AbstractDocument { public static final int MODIFIED_CONTENT_TYPE_CONFIG = 1; public static final int MODIFIED_CONTENT_TYPE_NEW_CONFIG = 2; public static final int MODIFIED_CONTENT_TYPE_SERVER = 3; private String configFilePath = ""; private IDGen idGen; private DocumentListener listener = new DocumentListener() { public void actionPerformed(DocumentEvent event) { JRemGUIDoc.this.actionPerfomed(event); } }; private JRemConfigDoc configDoc = null; private JRemServerDoc serverDoc = null; private JRemEnv env = null; public JRemGUIDoc() { this.env = JRemEnv.getInstance(); configDoc = createNewConfigDoc(); serverDoc = createServerDoc(); idGen = new IDGen(); fireGenericModifyEvent(); } private JRemServerDoc createServerDoc() { JRemServerDoc serverDoc = new JRemServerDoc(); serverDoc.addActionListener(listener); return serverDoc; } public JRemConfigDoc createNewConfigDoc() { destroyConfigDoc(); JRemConfigDoc configDoc = new JRemConfigDoc("New config", ".", true); configFilePath = ""; this.configDoc = configDoc; setupConfigDoc(configDoc); return configDoc; } public void loadConfig(String configFilePath) { JRemConfigReader reader = new JRemConfigReader(configFilePath); buildConfig(reader.getConfig()); setupConfigDoc(configDoc); setConfigFilePath(configFilePath); } private void buildConfig(final Config config) { JRemConfigDocFactory factory = new JRemConfigDocFactory(config); this.configDoc = factory.create(); } public String getConfigFilePath() { return configFilePath; } protected void setConfigFilePath(String configFilePath) { this.configFilePath = configFilePath; env.getAppConfiguration().setLastConfigFilePath(configFilePath); } public void saveConfig() { saveConfig(configFilePath); } public void saveConfig(String filePath) { if (JRemUtils.isEmptyString(filePath)) throw new IllegalArgumentException(); JRemConfigWriter w = new JRemConfigWriter(configDoc); w.writeToFile(filePath); setConfigFilePath(filePath); configDoc.resetState(); } public JRemConfigDoc getConfigDoc() { return configDoc; } public JRemServerDoc getServerDoc() { return serverDoc; } private void destroyConfigDoc() { if (configDoc == null) return; this.configDoc.removeActionListener(listener); this.configDoc = null; } private void setupConfigDoc(JRemConfigDoc configDoc) { configDoc.setModified(false); configDoc.addActionListener(listener); fireModifyEvent(MODIFIED_CONTENT_TYPE_NEW_CONFIG); } protected void actionPerfomed(DocumentEvent event) { Object source = event.getSource(); if (source == configDoc) fireModifyEvent(MODIFIED_CONTENT_TYPE_CONFIG); else if (source == serverDoc) fireModifyEvent(MODIFIED_CONTENT_TYPE_SERVER); } public boolean isModified() { return configDoc.isModified(); } public String getName() { return configDoc.getName(); } public String getNewName(String base) { return base + " - " + idGen.getNextID(); } protected JRemEnv getEnv() { return env; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -