/******************************************************************************* * 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.debug.DebugFrame; import net.erdfelt.android.sdkfido.ui.layout.CommonStyles; 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 WorkDirPanel extends JPanel { private static final long serialVersionUID = 7744574839920516820L; public static final Logger LOG = Logger.getLogger(WorkDirPanel.class.getName()); private ActionMapper actionMapper; public static void main(String[] args) { DebugFrame frame = new DebugFrame(new WorkDirPanel()); frame.setVisible(true); } public WorkDirPanel() { super(false); actionMapper = new ActionMapper(this); initGui(); Dimension minDim = new Dimension(500,200); setPreferredSize(minDim); setMinimumSize(minDim); } private void initGui() { // Create Widgets JLabel lblWorkDir = new JLabel("Work Dir:"); JTextField txtWorkDir = new JTextField(); DirectoryPicker pickerWorkDir = new DirectoryPicker(); pickerWorkDir.setTextField(txtWorkDir); pickerWorkDir.setDefaultDirectory(getWorkDir()); // TODO: switch to model String columns[] = { "Repo", "Branch", "Timestamp", "Size" }; String data[][] = { { "android.kernel.org/base.git", "master", "2011-Feb-5", "320MB" }, { "android.kernel.org/phone.git", "android-sdk-2.2.1", "2011-Jan-25", "110MB" } }; JTable tableRepos = new JTable(data, columns); JScrollPane tableScroller = new JScrollPane(tableRepos); TableUtils.setMinimumHeight(50, tableRepos, tableScroller); JProgressBar progressBar = new JProgressBar(); JButton btnGitPull = new JButton(); btnGitPull.setAction(actionMapper); btnGitPull.setActionCommand("git-pull"); btnGitPull.setText("Git Pull"); JButton btnGitMaster = new JButton(); btnGitMaster.setAction(actionMapper); btnGitMaster.setActionCommand("git-master"); btnGitMaster.setText("Git Branch Master"); JButton btnOpenOS = new JButton(); btnOpenOS.setAction(actionMapper); btnOpenOS.setActionCommand("open-in-os"); btnOpenOS.setText("Open in OS"); // Add Widgets this.setLayout(new GridBagLayout()); GBCStyles styles = CommonStyles.baseline(); JPanel buttonBar = new JPanel(); buttonBar.setLayout(new GridBagLayout()); buttonBar.add(btnGitPull, styles.use("button")); buttonBar.add(btnGitMaster, styles.use("button")); buttonBar.add(btnOpenOS, styles.use("button")); buttonBar.add(progressBar, styles.use("progressbar").endBoth()); this.add(lblWorkDir, styles.use("label")); this.add(txtWorkDir, styles.use("dirtext")); this.add(pickerWorkDir, styles.use("dirpicker").endRow()); this.add(tableScroller, styles.use("table").endRow()); this.add(buttonBar, styles.use("button_bar").endRow()); } @ActionTarget(name = "git-pull") public void doGitPull(ActionEvent event) { LOG.info("TODO: Implement Git Pull"); } @ActionTarget(name = "git-master") public void doGitBranchMaster(ActionEvent event) { LOG.info("TODO: Implement Git Branch Master"); } @ActionTarget(name = "open-in-os") public void doOpenInOS(ActionEvent event) { LOG.info("TODO: Implement Open In OS"); } private File getWorkDir() { // TODO Auto-generated method stub return new File("/home/joakim/.sdkfido"); } }