diff options
Diffstat (limited to 'draw9patch/src/com/android/draw9patch/ui/MainFrame.java')
-rw-r--r-- | draw9patch/src/com/android/draw9patch/ui/MainFrame.java | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/draw9patch/src/com/android/draw9patch/ui/MainFrame.java b/draw9patch/src/com/android/draw9patch/ui/MainFrame.java deleted file mode 100644 index a272a28..0000000 --- a/draw9patch/src/com/android/draw9patch/ui/MainFrame.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * 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 com.android.draw9patch.ui; - -import com.android.draw9patch.ui.action.ExitAction; -import com.android.draw9patch.ui.action.OpenAction; -import com.android.draw9patch.ui.action.SaveAction; -import com.android.draw9patch.graphics.GraphicsUtilities; - -import javax.swing.JFrame; -import javax.swing.JMenuBar; -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.ActionMap; -import javax.swing.JFileChooser; -import javax.imageio.ImageIO; -import java.awt.HeadlessException; -import java.awt.image.BufferedImage; -import java.io.File; -import java.util.concurrent.ExecutionException; - -import org.jdesktop.swingworker.SwingWorker; - -public class MainFrame extends JFrame { - private ActionMap actionsMap; - private JMenuItem saveMenuItem; - private ImageEditorPanel imageEditor; - - private static final String TITLE_FORMAT = "Draw 9-patch: %s"; - - public MainFrame(String path) throws HeadlessException { - super("Draw 9-patch"); - - buildActions(); - buildMenuBar(); - buildContent(); - - if (path == null) { - showOpenFilePanel(); - } else { - try { - File file = new File(path); - BufferedImage img = GraphicsUtilities.loadCompatibleImage(file.toURI().toURL()); - showImageEditor(img, file.getAbsolutePath()); - - setTitle(String.format(TITLE_FORMAT, path)); - } catch (Exception ex) { - showOpenFilePanel(); - } - } - - // pack(); - setSize(1024, 600); - } - - private void buildActions() { - actionsMap = new ActionMap(); - actionsMap.put(OpenAction.ACTION_NAME, new OpenAction(this)); - actionsMap.put(SaveAction.ACTION_NAME, new SaveAction(this)); - actionsMap.put(ExitAction.ACTION_NAME, new ExitAction(this)); - } - - private void buildMenuBar() { - JMenu fileMenu = new JMenu("File"); - JMenuItem openMenuItem = new JMenuItem(); - saveMenuItem = new JMenuItem(); - JMenuItem exitMenuItem = new JMenuItem(); - - openMenuItem.setAction(actionsMap.get(OpenAction.ACTION_NAME)); - fileMenu.add(openMenuItem); - - saveMenuItem.setAction(actionsMap.get(SaveAction.ACTION_NAME)); - saveMenuItem.setEnabled(false); - fileMenu.add(saveMenuItem); - - exitMenuItem.setAction(actionsMap.get(ExitAction.ACTION_NAME)); - fileMenu.add(exitMenuItem); - - JMenuBar menuBar = new JMenuBar(); - menuBar.add(fileMenu); - setJMenuBar(menuBar); - } - - private void buildContent() { - setContentPane(new GradientPanel()); - } - - private void showOpenFilePanel() { - add(new OpenFilePanel(this)); - } - - public SwingWorker<?, ?> open(File file) { - if (file == null) { - JFileChooser chooser = new JFileChooser(); - chooser.setFileFilter(new PngFileFilter()); - int choice = chooser.showOpenDialog(this); - if (choice == JFileChooser.APPROVE_OPTION) { - return new OpenTask(chooser.getSelectedFile()); - } else { - return null; - } - } else { - return new OpenTask(file); - } - } - - void showImageEditor(BufferedImage image, String name) { - getContentPane().removeAll(); - imageEditor = new ImageEditorPanel(this, image, name); - add(imageEditor); - saveMenuItem.setEnabled(true); - validate(); - repaint(); - } - - public SwingWorker<?, ?> save() { - if (imageEditor == null) { - return null; - } - - File file = imageEditor.chooseSaveFile(); - return file != null ? new SaveTask(file) : null; - } - - private class SaveTask extends SwingWorker<Boolean, Void> { - private final File file; - - SaveTask(File file) { - this.file = file; - } - - protected Boolean doInBackground() throws Exception { - try { - ImageIO.write(imageEditor.getImage(), "PNG", file); - } catch (Exception e) { - e.printStackTrace(); - } - return true; - } - } - - private class OpenTask extends SwingWorker<BufferedImage, Void> { - private final File file; - - OpenTask(File file) { - this.file = file; - } - - protected BufferedImage doInBackground() throws Exception { - return GraphicsUtilities.loadCompatibleImage(file.toURI().toURL()); - } - - @Override - protected void done() { - try { - showImageEditor(get(), file.getAbsolutePath()); - setTitle(String.format(TITLE_FORMAT, file.getAbsolutePath())); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - } - } -} |