diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/ui/StatusPanel.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/ui/StatusPanel.java | 357 |
1 files changed, 0 insertions, 357 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/ui/StatusPanel.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/ui/StatusPanel.java deleted file mode 100644 index 6ad258ee2..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/draw9patch/ui/StatusPanel.java +++ /dev/null @@ -1,357 +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.ui; - -import com.android.ide.eclipse.adt.AdtPlugin; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ControlEvent; -import org.eclipse.swt.events.ControlListener; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.KeyListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.layout.FormLayout; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Scale; - -/** - * Status and control pane. - */ -public class StatusPanel extends Composite implements KeyListener { - - public static final int SCALE_MIN = 2; - public static final int SCALE_MAX = 6; - - public static final int ZOOM_MIN = 100; - public static final int ZOOM_MAX = 800; - - public static final int PADDING_TOP = 12; - public static final int PADDING_RIGHT = 0; - public static final int PADDING_BOTTOM = 5; - public static final int PADDING_LEFT = 10; - - public static final int MIN_WIDTH = 800; - - private Button mShowLock = null; - private Button mShowPatches = null; - private Button mShowBadPatches = null; - private Button mShowContent = null; - - private Label mHelpLabel = null; - - private Label mXPosLabel = null; - private Label mYPosLabel = null; - - private ZoomControl mZoomControl = null; - private ZoomControl mScaleControl = null; - - private StatusChangedListener mListener = null; - - public void setStatusChangedListener(StatusChangedListener l) { - mListener = l; - } - - public void setHelpText(String text) { - Point size = getSize(); - // check window width - if (MIN_WIDTH < size.x) { - mHelpLabel.setText(text); - mHelpLabel.setVisible(true); - } else { - mHelpLabel.setText("N/A"); - mHelpLabel.setVisible(false); - } - } - - /** - * Set mouse cursor position. - */ - public void setPosition(int x, int y) { - mXPosLabel.setText(String.format("X: %4d px", x)); - mYPosLabel.setText(String.format("Y: %4d px", y)); - } - - public StatusPanel(Composite parent, int style) { - super(parent, style); - setLayout(new FormLayout()); - - final Composite container = new Composite(this, SWT.NULL); - container.setLayout(new FormLayout()); - - FormData innerForm = new FormData(); - innerForm.left = new FormAttachment(0, PADDING_LEFT); - innerForm.top = new FormAttachment(0, PADDING_TOP); - innerForm.right = new FormAttachment(100, PADDING_RIGHT); - innerForm.bottom = new FormAttachment(100, -PADDING_BOTTOM); - container.setLayoutData(innerForm); - - buildPosition(container); - - Composite zoomPanels = new Composite(container, SWT.NULL); - zoomPanels.setLayout(new GridLayout(3, false)); - - buildZoomControl(zoomPanels); - buildScaleControl(zoomPanels); - - Composite checkPanel = new Composite(container, SWT.NULL); - checkPanel.setLayout(new GridLayout(2, false)); - FormData checkPanelForm = new FormData(); - checkPanelForm.left = new FormAttachment(zoomPanels, 0); - checkPanelForm.bottom = new FormAttachment(100, -PADDING_BOTTOM); - checkPanel.setLayoutData(checkPanelForm); - - buildCheckboxes(checkPanel); - - mHelpLabel = new Label(container, SWT.BORDER_SOLID | SWT.BOLD | SWT.WRAP); - mHelpLabel.setBackground(new Color(AdtPlugin.getDisplay(), 0xFF, 0xFF, 0xFF)); - FormData hintForm = new FormData(); - hintForm.left = new FormAttachment(checkPanel, 5); - hintForm.right = new FormAttachment(mXPosLabel, -10); - hintForm.top = new FormAttachment(PADDING_TOP); - hintForm.bottom = new FormAttachment(100, -PADDING_BOTTOM); - mHelpLabel.setLayoutData(hintForm); - - /* - * If the window width is not much, the "help label" will break the window. - * Because that is wrapped automatically. - * - * This listener catch resized events and reset help text. - * - * setHelpText method checks window width. - * If window is too narrow, help text will be set invisible. - */ - container.addControlListener(new ControlListener() { - @Override - public void controlResized(ControlEvent event) { - // reset text - setHelpText(ImageViewer.HELP_MESSAGE_KEY_TIPS); - } - @Override - public void controlMoved(ControlEvent event) { - } - }); - - } - - private void buildPosition(Composite parent) { - mXPosLabel = new Label(parent, SWT.NULL); - mYPosLabel = new Label(parent, SWT.NULL); - - mXPosLabel.setText(String.format("X: %4d px", 1000)); - mYPosLabel.setText(String.format("Y: %4d px", 1000)); - - FormData bottomRight = new FormData(); - bottomRight.bottom = new FormAttachment(100, 0); - bottomRight.right = new FormAttachment(100, 0); - mYPosLabel.setLayoutData(bottomRight); - - FormData aboveYPosLabel = new FormData(); - aboveYPosLabel.bottom = new FormAttachment(mYPosLabel); - aboveYPosLabel.right = new FormAttachment(100, 0); - mXPosLabel.setLayoutData(aboveYPosLabel); - } - - private void buildScaleControl(Composite parent) { - mScaleControl = new ZoomControl(parent); - mScaleControl.maxLabel.setText("6x"); - mScaleControl.minLabel.setText("2x"); - mScaleControl.scale.setMinimum(SCALE_MIN); - mScaleControl.scale.setMaximum(SCALE_MAX); - mScaleControl.scale.setSelection(2); - mScaleControl.scale.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - super.widgetSelected(event); - if (mListener != null) { - Scale scale = (Scale) event.widget; - mListener.scaleChanged(scale.getSelection()); - } - } - }); - } - - private void buildZoomControl(Composite parent) { - mZoomControl = new ZoomControl(parent); - mZoomControl.maxLabel.setText("800%"); - mZoomControl.minLabel.setText("100%"); - mZoomControl.scale.setMinimum(ZOOM_MIN); - mZoomControl.scale.setMaximum(ZOOM_MAX - ZOOM_MIN); - mZoomControl.scale.setSelection(400); - mZoomControl.scale.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - super.widgetSelected(event); - if (mListener != null) { - Scale scale = (Scale) event.widget; - mListener.zoomChanged(scale.getSelection() + ZOOM_MIN); - } - } - }); - - } - - private void buildCheckboxes(Composite parent) { - // check lock - mShowLock = new Button(parent, SWT.CHECK); - mShowLock.setText("show Lock"); - mShowLock.setSelection(true); - mShowLock.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - super.widgetSelected(event); - if (mListener != null) { - mListener.lockVisibilityChanged(mShowLock.getSelection()); - } - } - }); - - // check patches - mShowPatches = new Button(parent, SWT.CHECK); - mShowPatches.setText("show Patches"); - mShowPatches.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - super.widgetSelected(event); - if (mListener != null) { - mListener.patchesVisibilityChanged(mShowPatches.getSelection()); - } - } - }); - - // check patches - mShowBadPatches = new Button(parent, SWT.CHECK); - mShowBadPatches.setText("show Bad patches"); - mShowBadPatches.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - super.widgetSelected(event); - if (mListener != null) { - mListener.badPatchesVisibilityChanged(mShowBadPatches.getSelection()); - } - } - }); - - // check contents(padding) - mShowContent = new Button(parent, SWT.CHECK); - mShowContent.setText("show Contents"); - mShowContent.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - super.widgetSelected(event); - if (mListener != null) { - mListener.contentAreaVisibilityChanged(mShowContent.getSelection()); - } - } - }); - } - - @Override - public void keyPressed(KeyEvent event) { - switch (event.character) { - case 'c': - mShowContent.setSelection(!mShowContent.getSelection()); - if (mListener != null) { - mListener.contentAreaVisibilityChanged(mShowContent.getSelection()); - } - break; - case 'l': - mShowLock.setSelection(!mShowLock.getSelection()); - if (mListener != null) { - mListener.lockVisibilityChanged(mShowLock.getSelection()); - } - break; - case 'p': - mShowPatches.setSelection(!mShowPatches.getSelection()); - if (mListener != null) { - mListener.patchesVisibilityChanged(mShowPatches.getSelection()); - } - break; - case 'b': - mShowBadPatches.setSelection(!mShowBadPatches.getSelection()); - if (mListener != null) { - mListener.badPatchesVisibilityChanged(mShowBadPatches.getSelection()); - } - break; - } - } - - @Override - public void keyReleased(KeyEvent event) { - } - - private static class ZoomControl { - - private Label minLabel; - private Label maxLabel; - Scale scale; - - public ZoomControl(Composite composite) { - minLabel = new Label(composite, SWT.RIGHT); - scale = new Scale(composite, SWT.HORIZONTAL); - maxLabel = new Label(composite, SWT.LEFT); - } - } - - /** - * Status changed events listener. - */ - public interface StatusChangedListener { - /** - * Zoom level has been changed. - * @param zoom - */ - public void zoomChanged(int zoom); - - /** - * Scale has been changed. - * @param scale - */ - public void scaleChanged(int scale); - - /** - * Lock visibility has been changed. - * @param visible - */ - public void lockVisibilityChanged(boolean visible); - - /** - * Patches visibility has been changed. - * @param visible - */ - public void patchesVisibilityChanged(boolean visible); - - /** - * BadPatches visibility has been changed. - * @param visible - */ - public void badPatchesVisibilityChanged(boolean visible); - - /** - * Content visibility has been changed. - * @param visible - */ - public void contentAreaVisibilityChanged(boolean visible); - } -} |