001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.gui.oauth;
003
004 import static org.openstreetmap.josm.tools.I18n.tr;
005
006 import java.awt.GridBagConstraints;
007 import java.awt.GridBagLayout;
008 import java.awt.Insets;
009
010 import javax.swing.BorderFactory;
011 import javax.swing.JCheckBox;
012 import javax.swing.JPanel;
013
014 import org.openstreetmap.josm.data.oauth.OsmPrivileges;
015 import org.openstreetmap.josm.gui.widgets.VerticallyScrollablePanel;
016
017 public class OsmPrivilegesPanel extends VerticallyScrollablePanel{
018
019 private JCheckBox cbWriteApi;
020 private JCheckBox cbWriteGpx;
021 private JCheckBox cbReadGpx;
022 private JCheckBox cbWritePrefs;
023 private JCheckBox cbReadPrefs;
024
025 protected void build() {
026 setLayout(new GridBagLayout());
027 GridBagConstraints gc = new GridBagConstraints();
028 setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
029
030 // checkbox for "allow to upload map data"
031 //
032 gc.anchor = GridBagConstraints.NORTHWEST;
033 gc.fill = GridBagConstraints.HORIZONTAL;
034 gc.weightx = 1.0;
035 gc.insets = new Insets(0,0,3,3);
036 add(cbWriteApi = new JCheckBox(), gc);
037 cbWriteApi.setText(tr("Allow to upload map data"));
038 cbWriteApi.setToolTipText(tr("Select to grant JOSM the right to upload map data on your behalf"));
039 cbWriteApi.setSelected(true);
040
041 // checkbox for "allow to upload gps traces"
042 //
043 gc.gridy = 1;
044 add(cbWriteGpx = new JCheckBox(), gc);
045 cbWriteGpx.setText(tr("Allow to upload GPS traces"));
046 cbWriteGpx.setToolTipText(tr("Select to grant JOSM the right to upload GPS traces on your behalf"));
047 cbWriteGpx.setSelected(true);
048
049 // checkbox for "allow to download private gps traces"
050 //
051 gc.gridy = 2;
052 add(cbReadGpx = new JCheckBox(), gc);
053 cbReadGpx.setText(tr("Allow to download your private GPS traces"));
054 cbReadGpx.setToolTipText(tr("Select to grant JOSM the right to download your private GPS traces into JOSM layers"));
055 cbReadGpx.setSelected(true);
056
057 // checkbox for "allow to download private gps traces"
058 //
059 gc.gridy = 3;
060 add(cbReadPrefs = new JCheckBox(), gc);
061 cbReadPrefs.setText(tr("Allow to read your preferences"));
062 cbReadPrefs.setToolTipText(tr("Select to grant JOSM the right to read your server preferences"));
063 cbReadPrefs.setSelected(true);
064
065 // checkbox for "allow to download private gps traces"
066 //
067 gc.gridy = 4;
068 add(cbWritePrefs = new JCheckBox(), gc);
069 cbWritePrefs.setText(tr("Allow to write your preferences"));
070 cbWritePrefs.setToolTipText(tr("Select to grant JOSM the right to write your server preferences"));
071 cbWritePrefs.setSelected(true);
072
073 // filler - grab remaining space
074 gc.gridy = 5;
075 gc.fill = GridBagConstraints.BOTH;
076 gc.weightx = 1.0;
077 gc.weighty = 1.0;
078 add(new JPanel(), gc);
079 }
080
081 public OsmPrivilegesPanel() {
082 build();
083 }
084
085 /**
086 * Replies the currently entered privileges
087 *
088 * @return the privileges
089 */
090 public OsmPrivileges getPrivileges() {
091 OsmPrivileges privileges = new OsmPrivileges();
092 privileges.setAllowWriteApi(cbWriteApi.isSelected());
093 privileges.setAllowWriteGpx(cbWriteGpx.isSelected());
094 privileges.setAllowReadGpx(cbReadGpx.isSelected());
095 privileges.setAllowWritePrefs(cbWritePrefs.isSelected());
096 privileges.setAllowReadPrefs(cbReadPrefs.isSelected());
097 return privileges;
098 }
099 }