/* * Zed Attack Proxy (ZAP) and its related class files. * * ZAP is an HTTP/HTTPS proxy for assessing web application security. * * Copyright 2010 psiinon@gmail.com * * 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.option; import java.awt.CardLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import org.parosproxy.paros.Constant; import org.parosproxy.paros.model.OptionsParam; import org.parosproxy.paros.view.AbstractParamPanel; import org.zaproxy.zap.utils.LocaleUtils; import org.zaproxy.zap.view.ViewLocale; public class OptionsLocalePanel extends AbstractParamPanel { private static final long serialVersionUID = 1L; private JPanel panelMisc = null; private JComboBox<ViewLocale> localeSelect = null; private JLabel localeLabel = null; private JLabel localeChangeLabel = null; public OptionsLocalePanel() { super(); initialize(); } /** * This method initializes this */ private void initialize() { this.setLayout(new CardLayout()); this.setName(Constant.messages.getString("view.options.title")); this.add(getPanelMisc(), getPanelMisc().getName()); } /** * This method initializes panelMisc * * @return javax.swing.JPanel */ private JPanel getPanelMisc() { if (panelMisc == null) { panelMisc = new JPanel(); panelMisc.setLayout(new GridBagLayout()); panelMisc.setSize(114, 132); panelMisc.setName(Constant.messages.getString("view.options.misc.title")); GridBagConstraints gbc0 = new GridBagConstraints(); GridBagConstraints gbc1_0 = new GridBagConstraints(); GridBagConstraints gbc1_1 = new GridBagConstraints(); GridBagConstraints gbc2 = new GridBagConstraints(); GridBagConstraints gbcX = new GridBagConstraints(); gbc0.gridx = 0; gbc0.gridy = 0; gbc0.ipadx = 0; gbc0.ipady = 0; gbc0.insets = new java.awt.Insets(2,2,2,2); gbc0.anchor = java.awt.GridBagConstraints.NORTHWEST; gbc0.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc0.weightx = 1.0D; gbc0.gridwidth = 2; gbc1_0.gridx = 0; gbc1_0.gridy = 1; gbc1_0.ipadx = 0; gbc1_0.ipady = 0; gbc1_0.insets = new java.awt.Insets(2,2,2,2); gbc1_0.anchor = java.awt.GridBagConstraints.NORTHWEST; gbc1_0.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc1_0.weightx = 1.0D; gbc1_1.gridx = 1; gbc1_1.gridy = 1; gbc1_1.ipadx = 0; gbc1_1.ipady = 0; gbc1_1.insets = new java.awt.Insets(2,2,2,2); gbc1_1.anchor = java.awt.GridBagConstraints.NORTHWEST; gbc1_1.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc1_1.weightx = 1.0D; gbc2.gridx = 0; gbc2.gridy = 2; gbc2.ipadx = 0; gbc2.ipady = 0; gbc2.insets = new java.awt.Insets(2,2,2,2); gbc2.anchor = java.awt.GridBagConstraints.NORTHWEST; gbc2.fill = java.awt.GridBagConstraints.HORIZONTAL; gbc2.weightx = 1.0D; gbc2.weighty = 1.0D; gbc2.gridwidth = 2; gbcX.gridx = 0; gbcX.gridy = 3; gbcX.ipadx = 0; gbcX.ipady = 0; gbcX.insets = new java.awt.Insets(2,2,2,2); gbcX.anchor = java.awt.GridBagConstraints.NORTHWEST; gbcX.fill = java.awt.GridBagConstraints.HORIZONTAL; gbcX.weightx = 1.0D; gbcX.weighty = 1.0D; localeLabel = new JLabel(Constant.messages.getString("locale.options.label.language")); localeChangeLabel = new JLabel(Constant.messages.getString("locale.options.label.change")); panelMisc.add(localeLabel, gbc1_0); panelMisc.add(getLocaleSelect(), gbc1_1); panelMisc.add(localeChangeLabel, gbc2); panelMisc.add(new JLabel(), gbcX); } return panelMisc; } private JComboBox<ViewLocale> getLocaleSelect() { if (localeSelect == null) { localeSelect = new JComboBox<>(); for (ViewLocale locale : LocaleUtils.getAvailableViewLocales()) { localeSelect.addItem(locale); } localeSelect.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // Change to use the selected language in the dialog ViewLocale selectedLocale = (ViewLocale) localeSelect.getSelectedItem(); if (selectedLocale != null) { Constant.setLocale(selectedLocale.getLocale()); localeLabel.setText(Constant.messages.getString("locale.options.label.language")); localeChangeLabel.setText(Constant.messages.getString("locale.options.label.change")); } }}); } return localeSelect; } @Override public void initParam(Object obj) { } @Override public void saveParam (Object obj) throws Exception { OptionsParam options = (OptionsParam) obj; ViewLocale selectedLocale = (ViewLocale) localeSelect.getSelectedItem(); if (selectedLocale != null) { options.getViewParam().setLocale(selectedLocale.getLocale()); } } @Override public String getHelpIndex() { // TODO no help page? return "ui.dialogs.options.locale"; } }