diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/Draw9PatchEditor.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/Draw9PatchEditor.java | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/Draw9PatchEditor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/Draw9PatchEditor.java deleted file mode 100644 index 48ef7c366..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/Draw9PatchEditor.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright (C) 2013 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.ide.eclipse.adt.internal.editors.draw9patch; - -import static com.android.SdkConstants.DOT_9PNG; -import com.android.ide.eclipse.adt.AdtPlugin; -import com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics.NinePatchedImage; -import com.android.ide.eclipse.adt.internal.editors.draw9patch.ui.ImageViewer; -import com.android.ide.eclipse.adt.internal.editors.draw9patch.ui.MainFrame; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.window.Window; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.graphics.ImageLoader; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorSite; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.dialogs.SaveAsDialog; -import org.eclipse.ui.part.EditorPart; -import org.eclipse.ui.part.FileEditorInput; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; - -/** - * Draw9Patch editor part. - */ -public class Draw9PatchEditor extends EditorPart implements ImageViewer.UpdateListener { - - private IProject mProject = null; - - private FileEditorInput mFileEditorInput = null; - - private String mFileName = null; - - private NinePatchedImage mNinePatchedImage = null; - - private MainFrame mMainFrame = null; - - @Override - public void init(IEditorSite site, IEditorInput input) throws PartInitException { - setSite(site); - setInput(input); - setPartName(input.getName()); - - // The contract of init() mentions we need to fail if we can't - // understand the input. - if (input instanceof FileEditorInput) { - // We try to open a file that is part of the current workspace - mFileEditorInput = (FileEditorInput) input; - mFileName = mFileEditorInput.getName(); - mProject = mFileEditorInput.getFile().getProject(); - } else { - throw new PartInitException("Input is not of type FileEditorInput " + //$NON-NLS-1$ - "nor FileStoreEditorInput: " + //$NON-NLS-1$ - input == null ? "null" : input.toString()); //$NON-NLS-1$ - } - - } - - @Override - public boolean isSaveAsAllowed() { - return true; - } - - @Override - public void doSaveAs() { - IPath relativePath = null; - if ((relativePath = showSaveAsDialog()) != null) { - mFileEditorInput = new FileEditorInput(ResourcesPlugin.getWorkspace().getRoot() - .getFile(relativePath)); - mFileName = mFileEditorInput.getName(); - setInput(mFileEditorInput); - - doSave(new NullProgressMonitor()); - } - } - - @Override - public void doSave(final IProgressMonitor monitor) { - boolean hasNinePatchExtension = mFileName.endsWith(DOT_9PNG); - boolean doConvert = false; - - if (!hasNinePatchExtension) { - String patchedName = NinePatchedImage.getNinePatchedFileName(mFileName); - doConvert = MessageDialog - .openQuestion(AdtPlugin.getDisplay().getActiveShell(), - "Warning", - String.format( - "The file \"%s\" doesn't seem to be a 9-patch file. \n" - + "Do you want to convert and save as \"%s\" ?", - mFileName, patchedName)); - - if (doConvert) { - IFile destFile = mProject.getFile(NinePatchedImage.getNinePatchedFileName( - mFileEditorInput.getFile().getProjectRelativePath().toOSString())); - if (!destFile.exists()) { - mFileEditorInput = new FileEditorInput(destFile); - mFileName = mFileEditorInput.getName(); - } else { - IPath relativePath = null; - if ((relativePath = showSaveAsDialog()) != null) { - mFileEditorInput = new FileEditorInput(ResourcesPlugin.getWorkspace() - .getRoot().getFile(relativePath)); - mFileName = mFileEditorInput.getName(); - } else { - doConvert = false; - } - } - } - } - - if (hasNinePatchExtension || doConvert) { - ImageLoader loader = new ImageLoader(); - loader.data = new ImageData[] { - mNinePatchedImage.getRawImageData() - }; - - IFile file = mFileEditorInput.getFile(); - - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - loader.save(outputStream, SWT.IMAGE_PNG); - byte[] byteArray = outputStream.toByteArray(); - - try { - if (file.exists()) { - file.setContents(new ByteArrayInputStream(byteArray), true, false, monitor); - } else { - file.create(new ByteArrayInputStream(byteArray), true, monitor); - } - - mNinePatchedImage.clearDirtyFlag(); - - AdtPlugin.getDisplay().asyncExec(new Runnable() { - @Override - public void run() { - setPartName(mFileName); - firePropertyChange(PROP_DIRTY); - } - }); - } catch (CoreException e) { - AdtPlugin.log(e, null); - } - } - } - - @Override - public void createPartControl(Composite parent) { - mMainFrame = new MainFrame(parent, SWT.NULL); - - ImageViewer imageViewer = mMainFrame.getImageEditorPanel().getImageViewer(); - imageViewer.addUpdateListener(this); - - mNinePatchedImage = imageViewer.loadFile(mFileEditorInput.getPath().toOSString()); - if (mNinePatchedImage.hasNinePatchExtension()) { - if (!mNinePatchedImage.ensure9Patch() && showConvertMessageBox(mFileName)) { - // Reload image - mNinePatchedImage = imageViewer.loadFile(mFileEditorInput.getPath().toOSString()); - mNinePatchedImage.convertToNinePatch(); - } - } else { - mNinePatchedImage.convertToNinePatch(); - } - - imageViewer.startDisplay(); - - parent.layout(); - } - - @Override - public void setFocus() { - mMainFrame.forceFocus(); - } - - @Override - public boolean isDirty() { - return mNinePatchedImage.isDirty(); - } - - @Override - public void update(NinePatchedImage image) { - if (image.isDirty()) { - firePropertyChange(PROP_DIRTY); - } - } - - private IPath showSaveAsDialog() { - SaveAsDialog dialog = new SaveAsDialog(AdtPlugin.getDisplay().getActiveShell()); - - IFile dest = mProject.getFile(NinePatchedImage.getNinePatchedFileName( - mFileEditorInput.getFile().getProjectRelativePath().toOSString())); - dialog.setOriginalFile(dest); - - dialog.create(); - - if (dialog.open() == Window.CANCEL) { - return null; - } - - return dialog.getResult(); - } - - private static boolean showConvertMessageBox(String fileName) { - return MessageDialog.openQuestion( - AdtPlugin.getDisplay().getActiveShell(), - "Warning", - String.format("The file \"%s\" doesn't seem to be a 9-patch file. \n" - + "Do you want to convert?", fileName)); - } -} |