/* * * Paros and its related class files. * * Paros is an HTTP/HTTPS proxy for assessing web application security. * Copyright (C) 2003-2004 Chinotec Technologies Company * * This program is free software; you can redistribute it and/or * modify it under the terms of the Clarified Artistic License * as published by the Free Software Foundation. * * 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 * Clarified Artistic License for more details. * * You should have received a copy of the Clarified Artistic License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // ZAP: 2012/03/15 Changed the method options to notify all OptionsChangedListener that the // options have changed. // ZAP: 2013/01/23 Clean up of exception handling/logging. // ZAP: 2013/03/03 Issue 546: Remove all template Javadoc comments // ZAP: 2016/04/04 Do not require a restart to show/hide the tool bar // ZAP: 2016/04/06 Fix layouts' issues package org.parosproxy.paros.control; import javax.swing.JOptionPane; import org.apache.commons.configuration.ConfigurationException; import org.apache.log4j.Logger; import org.parosproxy.paros.Constant; import org.parosproxy.paros.model.Model; import org.parosproxy.paros.view.OptionsDialog; import org.parosproxy.paros.view.View; public class MenuToolsControl { private static final Logger logger = Logger.getLogger(MenuToolsControl.class); private View view = null; private Model model = null; private Control control = null; public MenuToolsControl() { // use implicit MVC if not given view = View.getSingleton(); model = Model.getSingleton(); control = Control.getSingleton(); } public MenuToolsControl(Model model, View view, Control control) { // best use explicit class contructor this.model = model; this.view = view; this.control = control; } public void options() { this.options(null); } // ZAP: added ability to select panel public void options(String panel) { OptionsDialog dialog = view.getOptionsDialog(Constant.messages.getString("options.dialog.title")); dialog.initParam(model.getOptionsParam()); int result = dialog.showDialog(false, panel); if (result == JOptionPane.OK_OPTION) { try { model.getOptionsParam().getConfig().save(); } catch (ConfigurationException e) { logger.error(e.getMessage(), e); view.showWarningDialog(Constant.messages.getString("menu.tools.options.errorSavingOptions")); return; } // ZAP: Notify all OptionsChangedListener. control.getExtensionLoader().optionsChangedAllPlugin(model.getOptionsParam()); view.getMainFrame().applyViewOptions(); control.getProxy().stopServer(); control.getProxy().startServer(); } } }