/*
This file is part of RouteConverter.
RouteConverter 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 2 of the License, or
(at your option) any later version.
RouteConverter 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 RouteConverter; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Copyright (C) 2007 Christian Pesch. All Rights Reserved.
*/
package slash.navigation.converter.gui.dialogs;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import slash.navigation.common.BoundingBox;
import slash.navigation.converter.gui.RouteConverter;
import slash.navigation.converter.gui.RouteConverterOffline;
import slash.navigation.converter.gui.actions.DisplayMapAction;
import slash.navigation.converter.gui.actions.DownloadMapsAction;
import slash.navigation.converter.gui.helpers.AutomaticElevationService;
import slash.navigation.converter.gui.helpers.AvailableMapsTablePopupMenu;
import slash.navigation.converter.gui.helpers.DownloadableMapsTablePopupMenu;
import slash.navigation.converter.gui.renderer.LocalMapsTableCellRenderer;
import slash.navigation.converter.gui.renderer.RemoteMapsTableCellRenderer;
import slash.navigation.converter.gui.renderer.SimpleHeaderRenderer;
import slash.navigation.download.Checksum;
import slash.navigation.elevation.ElevationService;
import slash.navigation.gui.SimpleDialog;
import slash.navigation.gui.actions.ActionManager;
import slash.navigation.gui.actions.DialogAction;
import slash.navigation.maps.LocalMap;
import slash.navigation.maps.MapManager;
import slash.navigation.maps.RemoteMap;
import slash.navigation.maps.impl.LocalMapsTableModel;
import slash.navigation.routing.RoutingService;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.ResourceBundle;
import static java.awt.event.KeyEvent.VK_ESCAPE;
import static java.text.MessageFormat.format;
import static javax.swing.JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT;
import static javax.swing.KeyStroke.getKeyStroke;
import static slash.navigation.converter.gui.helpers.PositionHelper.formatSize;
import static slash.navigation.gui.helpers.JMenuHelper.registerAction;
import static slash.navigation.gui.helpers.JTableHelper.scrollToPosition;
import static slash.navigation.gui.helpers.UIHelper.getMaxWidth;
import static slash.navigation.maps.impl.RemoteMapsTableModel.*;
/**
* Dialog to show available and downloadable maps of the program.
*
* @author Christian Pesch
*/
public class MapsDialog extends SimpleDialog {
private JPanel contentPane;
private JTable tableAvailableMaps;
private JButton buttonDisplay;
private JTable tableDownloadableMaps;
private JButton buttonDownload;
private JButton buttonClose;
private JCheckBox checkBoxDownloadElevationData;
private JCheckBox checkBoxDownloadRoutingData;
public MapsDialog() {
super(RouteConverter.getInstance().getFrame(), "maps");
setTitle(RouteConverter.getBundle().getString("maps-title"));
setContentPane(contentPane);
getRootPane().setDefaultButton(buttonClose);
final RouteConverter r = RouteConverter.getInstance();
tableAvailableMaps.setModel(getMapManager().getAvailableMapsModel());
tableAvailableMaps.setDefaultRenderer(Object.class, new LocalMapsTableCellRenderer());
TableCellRenderer availableMapsHeaderRenderer = new SimpleHeaderRenderer("description");
TableColumnModel mapsColumns = tableAvailableMaps.getColumnModel();
for (int i = 0; i < mapsColumns.getColumnCount(); i++) {
TableColumn column = mapsColumns.getColumn(i);
column.setHeaderRenderer(availableMapsHeaderRenderer);
}
TableRowSorter<TableModel> sorterAvailableMaps = new TableRowSorter<>(tableAvailableMaps.getModel());
sorterAvailableMaps.setSortsOnUpdates(true);
sorterAvailableMaps.setComparator(LocalMapsTableModel.DESCRIPTION_COLUMN, new Comparator<LocalMap>() {
public int compare(LocalMap m1, LocalMap m2) {
return m1.getDescription().compareToIgnoreCase(m2.getDescription());
}
});
tableAvailableMaps.setRowSorter(sorterAvailableMaps);
final LocalMap selectedMap = getMapManager().getDisplayedMapModel().getItem();
if (selectedMap != null) {
int selectedMapIndex = getMapManager().getAvailableMapsModel().getIndex(selectedMap);
if (selectedMapIndex != -1) {
int selectedRow = tableAvailableMaps.convertRowIndexToView(selectedMapIndex);
tableAvailableMaps.getSelectionModel().addSelectionInterval(selectedRow, selectedRow);
scrollToPosition(tableAvailableMaps, selectedRow);
}
}
tableAvailableMaps.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;
int selectedRow = tableAvailableMaps.getSelectedRow();
if (selectedRow == -1)
return;
int row = tableAvailableMaps.convertRowIndexToView(selectedRow);
LocalMap map = getMapManager().getAvailableMapsModel().getMap(row);
r.showMapBorder(map.isVector() ? map.getBoundingBox() : null);
}
});
tableDownloadableMaps.setModel(getMapManager().getDownloadableMapsModel());
tableDownloadableMaps.setDefaultRenderer(Object.class, new RemoteMapsTableCellRenderer());
TableCellRenderer downloadableMapsHeaderRenderer = new SimpleHeaderRenderer("datasource", "description", "size");
TableColumnModel downloadableMapsColumns = tableDownloadableMaps.getColumnModel();
for (int i = 0; i < downloadableMapsColumns.getColumnCount(); i++) {
TableColumn column = downloadableMapsColumns.getColumn(i);
column.setHeaderRenderer(downloadableMapsHeaderRenderer);
if (i == 0) {
int width = getMaxWidth("RouteConverter Maps", 13);
column.setPreferredWidth(width);
column.setMaxWidth(width);
}
if (i == 2) {
int width = getMaxWidth("9999 MByte", 10);
column.setPreferredWidth(width);
column.setMaxWidth(width);
}
}
TableRowSorter<TableModel> sorterDownloadableMaps = new TableRowSorter<>(tableDownloadableMaps.getModel());
sorterDownloadableMaps.setSortsOnUpdates(true);
sorterDownloadableMaps.setComparator(DATASOURCE_COLUMN, new Comparator<RemoteMap>() {
public int compare(RemoteMap m1, RemoteMap m2) {
return m1.getDataSource().getName().compareToIgnoreCase(m2.getDataSource().getName());
}
});
sorterDownloadableMaps.setComparator(DESCRIPTION_COLUMN, new Comparator<RemoteMap>() {
public int compare(RemoteMap m1, RemoteMap m2) {
return m1.getDownloadable().getUri().compareToIgnoreCase(m2.getDownloadable().getUri());
}
});
sorterDownloadableMaps.setComparator(SIZE_COLUMN, new Comparator<RemoteMap>() {
private long getSize(RemoteMap map) {
Checksum checksum = map.getDownloadable().getLatestChecksum();
return checksum != null && checksum.getContentLength() != null ? checksum.getContentLength() : 0L;
}
public int compare(RemoteMap m1, RemoteMap m2) {
return (int) (getSize(m1) - getSize(m2));
}
});
tableDownloadableMaps.setRowSorter(sorterDownloadableMaps);
tableDownloadableMaps.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;
int selectedRow = tableDownloadableMaps.getSelectedRow();
if (selectedRow == -1)
return;
int row = tableDownloadableMaps.convertRowIndexToView(selectedRow);
RemoteMap map = getMapManager().getDownloadableMapsModel().getMap(row);
r.showMapBorder(map.getBoundingBox());
updateLabel();
}
});
updateLabel();
final ActionManager actionManager = r.getContext().getActionManager();
actionManager.register("display-map", new DisplayMapAction(tableAvailableMaps, getMapManager()));
actionManager.register("download-maps", new DownloadMapsAction(tableDownloadableMaps, getMapManager(),
checkBoxDownloadRoutingData, checkBoxDownloadElevationData));
new AvailableMapsTablePopupMenu(tableAvailableMaps).createPopupMenu();
new DownloadableMapsTablePopupMenu(tableDownloadableMaps).createPopupMenu();
registerAction(buttonDisplay, "display-map");
registerAction(buttonDownload, "download-maps");
buttonClose.addActionListener(new DialogAction(this) {
public void run() {
close();
}
});
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
close();
}
});
contentPane.registerKeyboardAction(new DialogAction(this) {
public void run() {
close();
}
}, getKeyStroke(VK_ESCAPE, 0), WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
}
private List<BoundingBox> getSelectedBoundingBoxes() {
List<BoundingBox> result = new ArrayList<>();
int[] selectedRows = tableDownloadableMaps.getSelectedRows();
for (int selectedRow : selectedRows) {
int row = tableDownloadableMaps.convertRowIndexToModel(selectedRow);
RemoteMap map = getMapManager().getDownloadableMapsModel().getMap(row);
BoundingBox boundingBox = map.getBoundingBox();
if (boundingBox != null)
result.add(boundingBox);
}
return result;
}
private void updateLabel() {
RouteConverter r = RouteConverter.getInstance();
List<BoundingBox> selectedBoundingBoxes = getSelectedBoundingBoxes();
RoutingService routingService = r.getRoutingServiceFacade().getRoutingService();
long routingServiceDownloadSize = routingService.isDownload() ?
routingService.calculateRemainingDownloadSize(selectedBoundingBoxes) : 0;
checkBoxDownloadRoutingData.setEnabled(routingServiceDownloadSize > 0);
checkBoxDownloadRoutingData.setSelected(checkBoxDownloadRoutingData.isEnabled());
checkBoxDownloadRoutingData.setText(format(RouteConverter.getBundle().getString("download-routing-data"),
formatSize(routingServiceDownloadSize), routingService.getName()));
ElevationService elevationService = r.getElevationServiceFacade().getElevationService();
long elevationServiceDownloadSize = elevationService.isDownload() ?
elevationService.calculateRemainingDownloadSize(selectedBoundingBoxes) : 0;
checkBoxDownloadElevationData.setEnabled(elevationServiceDownloadSize > 0);
checkBoxDownloadElevationData.setSelected(checkBoxDownloadElevationData.isEnabled());
String elevationServiceName = elevationService instanceof AutomaticElevationService ?
AutomaticElevationService.class.cast(elevationService).getPreferredDownloadName() :
elevationService.getName();
checkBoxDownloadElevationData.setText(format(RouteConverter.getBundle().getString("download-elevation-data"),
formatSize(elevationServiceDownloadSize), elevationServiceName));
}
private MapManager getMapManager() {
return ((RouteConverterOffline) RouteConverter.getInstance()).getMapManager();
}
private void close() {
RouteConverter.getInstance().showMapBorder(null);
dispose();
}
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPane = new JPanel();
contentPane.setLayout(new GridLayoutManager(4, 1, new Insets(10, 10, 10, 10), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(6, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null, null, null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
buttonDownload = new JButton();
this.$$$loadButtonText$$$(buttonDownload, ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("download-maps-action"));
buttonDownload.setToolTipText(ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("download-maps-action-tooltip"));
panel2.add(buttonDownload, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
panel2.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
checkBoxDownloadElevationData = new JCheckBox();
checkBoxDownloadElevationData.setSelected(true);
panel1.add(checkBoxDownloadElevationData, new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
checkBoxDownloadRoutingData = new JCheckBox();
checkBoxDownloadRoutingData.setSelected(true);
panel1.add(checkBoxDownloadRoutingData, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label1 = new JLabel();
this.$$$loadLabelText$$$(label1, ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("download-complete-coverage"));
panel1.add(label1, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JSeparator separator1 = new JSeparator();
panel1.add(separator1, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(1, 1, new Insets(6, 0, 0, 0), -1, -1));
panel1.add(panel3, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 1, false));
final JPanel panel4 = new JPanel();
panel4.setLayout(new GridLayoutManager(6, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel4, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
final JLabel label2 = new JLabel();
this.$$$loadLabelText$$$(label2, ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("my-maps"));
panel4.add(label2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label3 = new JLabel();
this.$$$loadLabelText$$$(label3, ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("downloadable-maps"));
panel4.add(label3, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
panel4.add(panel5, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null, null, null, 0, false));
final JPanel panel6 = new JPanel();
panel6.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
panel5.add(panel6, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
buttonDisplay = new JButton();
this.$$$loadButtonText$$$(buttonDisplay, ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("display-map-action"));
buttonDisplay.setToolTipText(ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("display-map-action-tooltip"));
panel6.add(buttonDisplay, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer2 = new Spacer();
panel6.add(spacer2, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
final JPanel panel7 = new JPanel();
panel7.setLayout(new GridLayoutManager(1, 1, new Insets(10, 0, 0, 0), -1, -1));
panel4.add(panel7, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
final JScrollPane scrollPane1 = new JScrollPane();
panel4.add(scrollPane1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
tableAvailableMaps = new JTable();
tableAvailableMaps.setPreferredScrollableViewportSize(new Dimension(400, 120));
tableAvailableMaps.setShowHorizontalLines(false);
tableAvailableMaps.setShowVerticalLines(false);
scrollPane1.setViewportView(tableAvailableMaps);
final JScrollPane scrollPane2 = new JScrollPane();
panel4.add(scrollPane2, new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
tableDownloadableMaps = new JTable();
tableDownloadableMaps.setPreferredScrollableViewportSize(new Dimension(400, 200));
tableDownloadableMaps.setShowHorizontalLines(false);
tableDownloadableMaps.setShowVerticalLines(false);
scrollPane2.setViewportView(tableDownloadableMaps);
final JPanel panel8 = new JPanel();
panel8.setLayout(new GridLayoutManager(1, 1, new Insets(3, 0, 0, 0), -1, -1));
contentPane.add(panel8, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
final JPanel panel9 = new JPanel();
panel9.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel9, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null, null, null, 0, false));
final Spacer spacer3 = new Spacer();
panel9.add(spacer3, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
final JPanel panel10 = new JPanel();
panel10.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
panel9.add(panel10, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
buttonClose = new JButton();
this.$$$loadButtonText$$$(buttonClose, ResourceBundle.getBundle("slash/navigation/converter/gui/RouteConverter").getString("close"));
panel10.add(buttonClose, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
/**
* @noinspection ALL
*/
private void $$$loadLabelText$$$(JLabel component, String text) {
StringBuffer result = new StringBuffer();
boolean haveMnemonic = false;
char mnemonic = '\0';
int mnemonicIndex = -1;
for (int i = 0; i < text.length(); i++) {
if (text.charAt(i) == '&') {
i++;
if (i == text.length()) break;
if (!haveMnemonic && text.charAt(i) != '&') {
haveMnemonic = true;
mnemonic = text.charAt(i);
mnemonicIndex = result.length();
}
}
result.append(text.charAt(i));
}
component.setText(result.toString());
if (haveMnemonic) {
component.setDisplayedMnemonic(mnemonic);
component.setDisplayedMnemonicIndex(mnemonicIndex);
}
}
/**
* @noinspection ALL
*/
private void $$$loadButtonText$$$(AbstractButton component, String text) {
StringBuffer result = new StringBuffer();
boolean haveMnemonic = false;
char mnemonic = '\0';
int mnemonicIndex = -1;
for (int i = 0; i < text.length(); i++) {
if (text.charAt(i) == '&') {
i++;
if (i == text.length()) break;
if (!haveMnemonic && text.charAt(i) != '&') {
haveMnemonic = true;
mnemonic = text.charAt(i);
mnemonicIndex = result.length();
}
}
result.append(text.charAt(i));
}
component.setText(result.toString());
if (haveMnemonic) {
component.setMnemonic(mnemonic);
component.setDisplayedMnemonicIndex(mnemonicIndex);
}
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPane;
}
}