/* * Indoorhelper is a JOSM plug-in to support users when creating their own indoor maps. * Copyright (C) 2016 Erik Gruschka * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * 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 * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package views; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; /** * The view for the pop-up hint that tells the user, that he has to start the fitting * of his indoor building plans. * * @author egru */ @SuppressWarnings("serial") public class FittingView extends JFrame { private JPanel dialogPane; private JPanel contentPanel; private JLabel label1; private JPanel buttonBar; private JButton okButton; public FittingView() { initComponents(); } private void initComponents() { dialogPane = new JPanel(); contentPanel = new JPanel(); label1 = new JLabel(); buttonBar = new JPanel(); okButton = new JButton(); //======== this ======== setTitle(tr("Fitting")); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); //======== dialogPane ======== { dialogPane.setBorder(new EmptyBorder(12, 12, 12, 12)); dialogPane.setLayout(new BorderLayout()); //======== contentPanel ======== { contentPanel.setLayout(new FlowLayout()); //---- label1 ---- label1.setText(tr("<html>Please mind to start fitting your building-plans now.<br>" + "To do so, use the PicLayer plug-in, which you can install<br>" + "using the JOSM plug-in management.</html>")); contentPanel.add(label1); } dialogPane.add(contentPanel, BorderLayout.CENTER); //======== buttonBar ======== { buttonBar.setBorder(new EmptyBorder(12, 0, 0, 0)); buttonBar.setLayout(new GridBagLayout()); ((GridBagLayout) buttonBar.getLayout()).columnWidths = new int[] {0, 80}; ((GridBagLayout) buttonBar.getLayout()).columnWeights = new double[] {1.0, 0.0}; //---- okButton ---- okButton.setText(tr("OK")); buttonBar.add(okButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); } dialogPane.add(buttonBar, BorderLayout.SOUTH); } contentPane.add(dialogPane, BorderLayout.CENTER); pack(); setLocationRelativeTo(getOwner()); } /** * Set the given {@link ActionListener} to the OK-Button of the {@link FittingView}. * * @param l the listener which should be set */ public void setOkButtonListener(ActionListener l) { this.okButton.addActionListener(l); } }