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 }