/* * Zed Attack Proxy (ZAP) and its related class files. * * ZAP is an HTTP/HTTPS proxy for assessing web application security. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.zaproxy.zap.extension.httppanel.component; import javax.swing.JPanel; import javax.swing.JToggleButton; import org.apache.commons.configuration.FileConfiguration; import org.zaproxy.zap.extension.httppanel.Message; import org.zaproxy.zap.extension.httppanel.view.HttpPanelDefaultViewSelector; import org.zaproxy.zap.extension.httppanel.view.HttpPanelView; public interface HttpPanelComponentInterface { // Name of the component for internal reference. String getName(); int getPosition(); // Component has to provide the button which is displayed in the HttpPanel to select this view JToggleButton getButton(); // Component needs to provide a panel with main content which is displayed in HttpPanel JPanel getMainPanel(); // Component can provide an additional panel which is displayed in the HttpPanel header when this view is selected JPanel getOptionsPanel(); JPanel getMoreOptionsPanel(); // Set a new Message for this Component // For example, the user selects a new message in the history tab. // The component should update it's models accordingly. void setMessage(Message aMessage); // The component is requested to save data from the UI into the current Message. // For example, the user selects a new message in the history tab. Or in break mode, want to send the modified message. void save(); void addView(HttpPanelView view, Object options, FileConfiguration fileConfiguration); void removeView(String viewName, Object options); void clearView(); void clearView(boolean enableViewSelect); void setEnableViewSelect(boolean enableViewSelect); void addDefaultViewSelector(HttpPanelDefaultViewSelector defaultViewSelector, Object options); void removeDefaultViewSelector(String defaultViewSelectorName, Object options); void setParentConfigurationKey(String configurationKey); void loadConfig(FileConfiguration fileConfiguration); void saveConfig(FileConfiguration fileConfiguration); void setEditable(boolean editable); // Used to inform the view if it was selected/unselected void setSelected(boolean selected); boolean isEnabled(Message aMessage); HttpPanelView setSelectedView(String name); }