package org.geogebra.desktop.gui.view.spreadsheet; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.JRadioButton; import org.geogebra.common.main.Localization; import org.geogebra.desktop.main.AppD; /** * Dialog for selecting copy to spreadsheet options. * * @author G. Sturr * */ public class DialogCopyToSpreadsheet extends JDialog implements ActionListener { private static final long serialVersionUID = 1L; private SpreadsheetViewDnD dndHandler; private AppD app; private JButton btnCancel, btnCopy; private JRadioButton rbFree, rbDependent; private JCheckBox ckTranspose; public DialogCopyToSpreadsheet(AppD app, SpreadsheetViewDnD dndHandler) { super(app.getFrame(), app.getLocalization().getMenu("CopyToSpreadsheet"), true); // modal // dialog this.app = app; this.dndHandler = dndHandler; createGUI(); this.setResizable(false); pack(); setLocationRelativeTo(app.getMainComponent()); btnCopy.requestFocus(); dndHandler.setAllowDrop(false); } private void createGUI() { createGUIElements(); JPanel copyTypePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); copyTypePanel.add(rbFree); copyTypePanel.add(rbDependent); JPanel orderTypePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); // orderTypePanel.add(rbOrderRow); // orderTypePanel.add(rbOrderCol); orderTypePanel.add(ckTranspose); JPanel cancelOKPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); cancelOKPanel.add(btnCopy); cancelOKPanel.add(btnCancel); Box vBox = Box.createVerticalBox(); vBox.add(copyTypePanel); vBox.add(orderTypePanel); Localization loc = app.getLocalization(); vBox.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createEmptyBorder(5, 2, 5, 2), BorderFactory.createTitledBorder(loc.getMenu("Options")))); getContentPane().setLayout(new BorderLayout()); getContentPane().add(vBox, BorderLayout.CENTER); getContentPane().add(cancelOKPanel, BorderLayout.SOUTH); setLabels(); } private void createGUIElements() { btnCopy = new JButton(); btnCopy.addActionListener(this); btnCancel = new JButton(); btnCancel.addActionListener(this); rbDependent = new JRadioButton(); rbFree = new JRadioButton(); ButtonGroup bg = new ButtonGroup(); bg.add(rbDependent); bg.add(rbFree); rbFree.setSelected(dndHandler.isCopyByValue()); rbDependent.setSelected(!dndHandler.isCopyByValue()); ckTranspose = new JCheckBox(); ckTranspose.setSelected(dndHandler.isTranspose()); } public void setLabels() { Localization loc = app.getLocalization(); btnCopy.setText(loc.getMenu("Copy")); btnCancel.setText(loc.getMenu("Cancel")); rbDependent.setText(loc.getMenu("DependentObjects")); rbFree.setText(loc.getMenu("FreeObjects")); ckTranspose.setText(loc.getMenu("Transpose")); } /** * Handles button clicks for dialog. */ @Override public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == btnCancel) { setVisible(false); } else if (source == btnCopy) { dndHandler.setCopyByValue(rbFree.isSelected()); dndHandler.setTranspose(ckTranspose.isSelected()); dndHandler.setAllowDrop(true); setVisible(false); } } @Override public void setVisible(boolean isVisible) { if (!isVisible) { } super.setVisible(isVisible); } }