/* * Created on Sep 02, 2005 * * This file is part of susidns project, see http://susi.i2p/ * * Copyright (C) 2005 <susi23@mail.i2p> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * $Revision: 1.3 $ */ package i2p.susi.dns; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.Serializable; import java.util.Map; import java.util.Properties; import net.i2p.I2PAppContext; import net.i2p.data.DataHelper; import net.i2p.util.OrderedProperties; public class ConfigBean extends BaseBean implements Serializable { private String config; private boolean saved; public String getfileName() { return configFile().toString(); } public boolean isSaved() { return saved; } public String getConfig() { if( config != null ) return config; reload(); return config; } @Override protected void reload() { super.reload(); StringBuilder buf = new StringBuilder(256); for (Map.Entry<Object, Object> e : properties.entrySet()) { buf.append((String) e.getKey()).append('=') .append((String) e.getValue()).append('\n'); } config = buf.toString(); saved = true; } private void save() { try { // use loadProps to trim, use storeProps to sort and get line endings right Properties props = new OrderedProperties(); DataHelper.loadProps(props, new ByteArrayInputStream(config.getBytes("UTF-8"))); synchronized (BaseBean.class) { DataHelper.storeProps(props, configFile()); } saved = true; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void setConfig(String config) { // will come from form with \r\n line endings this.config = config; this.saved = false; } public String getMessages() { String message = ""; if( action != null ) { if (I2PAppContext.getGlobalContext().getBooleanProperty(BaseBean.PROP_PW_ENABLE) || (serial != null && serial.equals(lastSerial))) { if(action.equals(_t("Save"))) { save(); message = _t("Configuration saved."); } else if (action.equals(_t("Reload"))) { reload(); message = _t("Configuration reloaded."); } } else { message = _t("Invalid form submission, probably because you used the \"back\" or \"reload\" button on your browser. Please resubmit.") + ' ' + _t("If the problem persists, verify that you have cookies enabled in your browser."); } } if( message.length() > 0 ) message = "<p class=\"messages\">" + message + "</p>"; return message; } }