/******************************************************************************* * Copyright 2012 - Joakim Erdfelt * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *******************************************************************************/ package net.erdfelt.android.sdkfido.ui.panels; import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.io.File; import java.util.logging.Logger; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import net.erdfelt.android.sdkfido.ui.actions.ActionMapper; import net.erdfelt.android.sdkfido.ui.actions.ActionTarget; import net.erdfelt.android.sdkfido.ui.layout.CommonStyles; import net.erdfelt.android.sdkfido.ui.layout.GBC; import net.erdfelt.android.sdkfido.ui.layout.GBCStyles; import net.erdfelt.android.sdkfido.ui.utils.DirectoryPicker; import net.erdfelt.android.sdkfido.ui.utils.TableUtils; public class SdkFetchPanel extends JPanel { private static final long serialVersionUID = 7709281899499719804L; private static final Logger LOG = Logger.getLogger(SdkFetchPanel.class.getName()); private ActionMapper actionMapper; public SdkFetchPanel() { super(false); actionMapper = new ActionMapper(this); initGui(); Dimension minDim = new Dimension(500,200); setPreferredSize(minDim); setMinimumSize(minDim); } private void initGui() { // Create Widgets JLabel lblSdkHome = new JLabel("ANDROID_HOME:"); JTextField txtSdkHome = new JTextField(); DirectoryPicker pickerSdkHome = new DirectoryPicker(); pickerSdkHome.setTextField(txtSdkHome); pickerSdkHome.setDefaultDirectory(getSdkHomeDir()); JLabel lblProjectsHome = new JLabel("Maven Projects Home:"); JTextField txtProjectsHome = new JTextField(); DirectoryPicker pickerProjectsHome = new DirectoryPicker(); pickerProjectsHome.setTextField(txtProjectsHome); pickerProjectsHome.setDefaultDirectory(getMavenProjectsHomeDir()); JLabel lblAvailableSdks = new JLabel("Available Android SDKs:"); // TODO: switch to model String columns[] = { "SDK Version", "Status" }; String data[][] = { { "Android 2.2.1", "Available" }, { "Android 2.1.2", "Not present in SDK Home" }, { "Android 2.0", "Not present in SDK Home" }, { "Android 1.6", "Not present in SDK Home" }, { "Android 1.5", "Not present in SDK Home" } }; JTable tableAvailableSdks = new JTable(data, columns); JScrollPane tableScroller = new JScrollPane(tableAvailableSdks); TableUtils.setMinimumHeight(80, tableAvailableSdks, tableScroller); JProgressBar progressBar = new JProgressBar(); JButton btnFetch = new JButton(); btnFetch.setAction(actionMapper); btnFetch.setActionCommand("fetch"); btnFetch.setText("Fetch!"); JButton btnMavenize = new JButton(); btnMavenize.setAction(actionMapper); btnMavenize.setActionCommand("mavenize"); btnMavenize.setText("Mavenize"); // Add Widgets this.setLayout(new GridBagLayout()); GBCStyles styles = CommonStyles.baseline(); this.add(lblSdkHome, styles.use("label")); this.add(txtSdkHome, styles.use("dirtext")); this.add(pickerSdkHome, styles.use("dirpicker").endRow()); this.add(lblProjectsHome, styles.use("label")); this.add(txtProjectsHome, styles.use("dirtext")); this.add(pickerProjectsHome, styles.use("dirpicker").endRow()); this.add(lblAvailableSdks, styles.use("label").align(GBC.TOP_LEFT)); this.add(tableScroller, styles.use("table").endRow()); JPanel buttonBar = new JPanel(); buttonBar.setLayout(new GridBagLayout()); buttonBar.add(btnFetch, styles.use("button")); buttonBar.add(btnMavenize, styles.use("button")); buttonBar.add(progressBar, styles.use("progressbar").endBoth()); this.add(buttonBar, styles.use("button_bar").x(1).endBoth()); } @ActionTarget(name = "fetch") public void doFetch(ActionEvent event) { // TODO LOG.info("TODO: Implement Fetch Action"); } @ActionTarget(name = "mavenize") public void doMavenize(ActionEvent event) { // TODO LOG.info("TODO: Implement Mavenize Action"); } private File getMavenProjectsHomeDir() { // TODO Auto-generated method stub return new File("/home/joakim/code/android-maven/"); } private File getSdkHomeDir() { // TODO Auto-generated method stub return new File("/home/joakim/java/android/current/"); } }