diff options
Diffstat (limited to 'ddms/libs/ddmuilib/src')
-rw-r--r-- | ddms/libs/ddmuilib/src/Android.mk | 27 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/com/android/ddmuilib/ImageLoader.java | 9 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/com/android/ddmuilib/ScreenShotDialog.java | 19 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/com/android/ddmuilib/explorer/DeviceExplorer.java | 97 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/com/android/ddmuilib/handler/MethodProfilingHandler.java | 6 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/EditFilterDialog.java | 74 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogFilter.java | 23 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogPanel.java | 6 | ||||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/add.png (renamed from ddms/libs/ddmuilib/src/resources/images/add.png) | bin | 146 -> 146 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/android.png (renamed from ddms/libs/ddmuilib/src/resources/images/android.png) | bin | 3609 -> 3609 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/backward.png (renamed from ddms/libs/ddmuilib/src/resources/images/backward.png) | bin | 136 -> 136 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/capture.png (renamed from ddms/libs/ddmuilib/src/resources/images/capture.png) | bin | 691 -> 691 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/clear.png (renamed from ddms/libs/ddmuilib/src/resources/images/clear.png) | bin | 217 -> 217 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/d.png (renamed from ddms/libs/ddmuilib/src/resources/images/d.png) | bin | 638 -> 638 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/debug-attach.png (renamed from ddms/libs/ddmuilib/src/resources/images/debug-attach.png) | bin | 156 -> 156 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/debug-error.png (renamed from ddms/libs/ddmuilib/src/resources/images/debug-error.png) | bin | 222 -> 222 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/debug-wait.png (renamed from ddms/libs/ddmuilib/src/resources/images/debug-wait.png) | bin | 156 -> 156 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/delete.png (renamed from ddms/libs/ddmuilib/src/resources/images/delete.png) | bin | 107 -> 107 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/device.png (renamed from ddms/libs/ddmuilib/src/resources/images/device.png) | bin | 135 -> 135 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/down.png (renamed from ddms/libs/ddmuilib/src/resources/images/down.png) | bin | 141 -> 141 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/e.png (renamed from ddms/libs/ddmuilib/src/resources/images/e.png) | bin | 511 -> 511 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/edit.png (renamed from ddms/libs/ddmuilib/src/resources/images/edit.png) | bin | 223 -> 223 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/empty.png (renamed from ddms/libs/ddmuilib/src/resources/images/empty.png) | bin | 75 -> 75 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/emulator.png (renamed from ddms/libs/ddmuilib/src/resources/images/emulator.png) | bin | 287 -> 287 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/file.png (renamed from ddms/libs/ddmuilib/src/resources/images/file.png) | bin | 157 -> 157 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/folder.png (renamed from ddms/libs/ddmuilib/src/resources/images/folder.png) | bin | 123 -> 123 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/forward.png (renamed from ddms/libs/ddmuilib/src/resources/images/forward.png) | bin | 137 -> 137 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/gc.png (renamed from ddms/libs/ddmuilib/src/resources/images/gc.png) | bin | 165 -> 165 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/halt.png (renamed from ddms/libs/ddmuilib/src/resources/images/halt.png) | bin | 197 -> 197 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/heap.png (renamed from ddms/libs/ddmuilib/src/resources/images/heap.png) | bin | 222 -> 222 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/hprof.png (renamed from ddms/libs/ddmuilib/src/resources/images/hprof.png) | bin | 317 -> 317 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/i.png (renamed from ddms/libs/ddmuilib/src/resources/images/i.png) | bin | 498 -> 498 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/importBug.png (renamed from ddms/libs/ddmuilib/src/resources/images/importBug.png) | bin | 191 -> 191 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/load.png (renamed from ddms/libs/ddmuilib/src/resources/images/load.png) | bin | 163 -> 163 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/pause.png (renamed from ddms/libs/ddmuilib/src/resources/images/pause.png) | bin | 98 -> 98 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/play.png (renamed from ddms/libs/ddmuilib/src/resources/images/play.png) | bin | 138 -> 138 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/pull.png (renamed from ddms/libs/ddmuilib/src/resources/images/pull.png) | bin | 329 -> 329 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/push.png (renamed from ddms/libs/ddmuilib/src/resources/images/push.png) | bin | 228 -> 228 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/save.png (renamed from ddms/libs/ddmuilib/src/resources/images/save.png) | bin | 240 -> 240 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/sort_down.png (renamed from ddms/libs/ddmuilib/src/resources/images/sort_down.png) | bin | 102 -> 102 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/sort_up.png (renamed from ddms/libs/ddmuilib/src/resources/images/sort_up.png) | bin | 105 -> 105 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/thread.png (renamed from ddms/libs/ddmuilib/src/resources/images/thread.png) | bin | 121 -> 121 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/tracing_start.png (renamed from ddms/libs/ddmuilib/src/resources/images/tracing_start.png) | bin | 227 -> 227 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/tracing_stop.png (renamed from ddms/libs/ddmuilib/src/resources/images/tracing_stop.png) | bin | 217 -> 217 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/up.png (renamed from ddms/libs/ddmuilib/src/resources/images/up.png) | bin | 134 -> 134 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/v.png (renamed from ddms/libs/ddmuilib/src/resources/images/v.png) | bin | 587 -> 587 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/w.png (renamed from ddms/libs/ddmuilib/src/resources/images/w.png) | bin | 681 -> 681 bytes | |||
-rw-r--r-- | ddms/libs/ddmuilib/src/images/warning.png (renamed from ddms/libs/ddmuilib/src/resources/images/warning.png) | bin | 147 -> 147 bytes |
48 files changed, 189 insertions, 72 deletions
diff --git a/ddms/libs/ddmuilib/src/Android.mk b/ddms/libs/ddmuilib/src/Android.mk deleted file mode 100644 index cfc1791..0000000 --- a/ddms/libs/ddmuilib/src/Android.mk +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 2007 The Android Open Source Project -# -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := $(call all-subdir-java-files) -LOCAL_JAVA_RESOURCE_DIRS := resources - -LOCAL_JAR_MANIFEST := ../etc/manifest.txt - -# If the dependency list is changed, etc/manifest.txt -# MUST be updated as well (Except for swt.jar which is dynamically -# added based on whether the VM is 32 or 64 bit) -LOCAL_JAVA_LIBRARIES := \ - ddmlib \ - swt \ - org.eclipse.jface_3.4.2.M20090107-0800 \ - org.eclipse.equinox.common_3.4.0.v20080421-2006 \ - org.eclipse.core.commands_3.4.0.I20080509-2000 \ - jcommon-1.0.12 \ - jfreechart-1.0.9 \ - jfreechart-1.0.9-swt - -LOCAL_MODULE := ddmuilib - -include $(BUILD_HOST_JAVA_LIBRARY) - diff --git a/ddms/libs/ddmuilib/src/com/android/ddmuilib/ImageLoader.java b/ddms/libs/ddmuilib/src/com/android/ddmuilib/ImageLoader.java index 40cbd1d..fd480f6 100644 --- a/ddms/libs/ddmuilib/src/com/android/ddmuilib/ImageLoader.java +++ b/ddms/libs/ddmuilib/src/com/android/ddmuilib/ImageLoader.java @@ -140,13 +140,11 @@ public class ImageLoader { if (imageStream != null) { img = new Image(display, imageStream); - if (img == null) { - throw new NullPointerException("couldn't load " + tmp); - } - mLoadedImages.put(filename, img); + } - return img; + if (img == null) { + throw new RuntimeException("Failed to load " + tmp); } } @@ -159,7 +157,6 @@ public class ImageLoader { * Extra parameters allows for creation of a replacement image of the * loading failed. * - * @param loader the image loader used. * @param display the Display object * @param fileName the file name * @param width optional width to create replacement Image. If -1, null be diff --git a/ddms/libs/ddmuilib/src/com/android/ddmuilib/ScreenShotDialog.java b/ddms/libs/ddmuilib/src/com/android/ddmuilib/ScreenShotDialog.java index 590a8ab..d0c8a2f 100644 --- a/ddms/libs/ddmuilib/src/com/android/ddmuilib/ScreenShotDialog.java +++ b/ddms/libs/ddmuilib/src/com/android/ddmuilib/ScreenShotDialog.java @@ -43,6 +43,7 @@ import org.eclipse.swt.widgets.Shell; import java.io.File; import java.io.IOException; +import java.util.Calendar; /** @@ -57,6 +58,8 @@ public class ScreenShotDialog extends Dialog { private RawImage mRawImage; private Clipboard mClipboard; + /** Number of 90 degree rotations applied to the current image */ + private int mRotateCount = 0; /** * Create with default style. @@ -118,6 +121,14 @@ public class ScreenShotDialog extends Dialog { @Override public void widgetSelected(SelectionEvent e) { updateDeviceImage(shell); + // RawImage only allows us to rotate the image 90 degrees at the time, + // so to preserve the current rotation we must call getRotated() + // the same number of times the user has done it manually. + // TODO: improve the RawImage class. + for (int i=0; i < mRotateCount; i++) { + mRawImage = mRawImage.getRotated(); + } + updateImageDisplay(shell); } }); @@ -131,6 +142,7 @@ public class ScreenShotDialog extends Dialog { @Override public void widgetSelected(SelectionEvent e) { if (mRawImage != null) { + mRotateCount = (mRotateCount + 1) % 4; mRawImage = mRawImage.getRotated(); updateImageDisplay(shell); } @@ -282,10 +294,13 @@ public class ScreenShotDialog extends Dialog { */ private void saveImage(Shell shell) { FileDialog dlg = new FileDialog(shell, SWT.SAVE); - String fileName; + + Calendar now = Calendar.getInstance(); + String fileName = String.format("device-%tF-%tH%tM%tS.png", + now, now, now, now); dlg.setText("Save image..."); - dlg.setFileName("device.png"); + dlg.setFileName(fileName); String lastDir = DdmUiPreferences.getStore().getString("lastImageSaveDir"); if (lastDir.length() == 0) { diff --git a/ddms/libs/ddmuilib/src/com/android/ddmuilib/explorer/DeviceExplorer.java b/ddms/libs/ddmuilib/src/com/android/ddmuilib/explorer/DeviceExplorer.java index a0febeb..a466be1 100644 --- a/ddms/libs/ddmuilib/src/com/android/ddmuilib/explorer/DeviceExplorer.java +++ b/ddms/libs/ddmuilib/src/com/android/ddmuilib/explorer/DeviceExplorer.java @@ -19,23 +19,28 @@ package com.android.ddmuilib.explorer; import com.android.ddmlib.AdbCommandRejectedException; import com.android.ddmlib.DdmConstants; import com.android.ddmlib.FileListingService; +import com.android.ddmlib.FileListingService.FileEntry; import com.android.ddmlib.IDevice; import com.android.ddmlib.IShellOutputReceiver; import com.android.ddmlib.ShellCommandUnresponsiveException; import com.android.ddmlib.SyncException; import com.android.ddmlib.SyncService; -import com.android.ddmlib.TimeoutException; -import com.android.ddmlib.FileListingService.FileEntry; import com.android.ddmlib.SyncService.ISyncProgressMonitor; +import com.android.ddmlib.TimeoutException; import com.android.ddmuilib.DdmUiPreferences; import com.android.ddmuilib.ImageLoader; import com.android.ddmuilib.Panel; import com.android.ddmuilib.SyncProgressHelper; -import com.android.ddmuilib.TableHelper; import com.android.ddmuilib.SyncProgressHelper.SyncRunnable; +import com.android.ddmuilib.TableHelper; import com.android.ddmuilib.actions.ICommonAction; import com.android.ddmuilib.console.DdmConsole; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.dialogs.IInputValidator; +import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; @@ -96,6 +101,7 @@ public class DeviceExplorer extends Panel { private ICommonAction mPushAction; private ICommonAction mPullAction; private ICommonAction mDeleteAction; + private ICommonAction mCreateNewFolderAction; private Image mFileImage; private Image mFolderImage; @@ -134,12 +140,14 @@ public class DeviceExplorer extends Panel { * @param pushAction * @param pullAction * @param deleteAction + * @param createNewFolderAction */ public void setActions(ICommonAction pushAction, ICommonAction pullAction, - ICommonAction deleteAction) { + ICommonAction deleteAction, ICommonAction createNewFolderAction) { mPushAction = pushAction; mPullAction = pullAction; mDeleteAction = deleteAction; + mCreateNewFolderAction = createNewFolderAction; } /** @@ -201,6 +209,7 @@ public class DeviceExplorer extends Panel { mPullAction.setEnabled(false); mPushAction.setEnabled(false); mDeleteAction.setEnabled(false); + mCreateNewFolderAction.setEnabled(false); return; } if (sel instanceof IStructuredSelection) { @@ -212,7 +221,9 @@ public class DeviceExplorer extends Panel { mPullAction.setEnabled(true); mPushAction.setEnabled(selection.size() == 1); if (selection.size() == 1) { - setDeleteEnabledState((FileEntry)element); + FileEntry entry = (FileEntry) element; + setDeleteEnabledState(entry); + mCreateNewFolderAction.setEnabled(entry.isDirectory()); } else { mDeleteAction.setEnabled(false); } @@ -617,6 +628,82 @@ public class DeviceExplorer extends Panel { } + public void createNewFolderInSelection() { + TreeItem[] items = mTree.getSelection(); + + if (items.length != 1) { + return; + } + + final FileEntry entry = (FileEntry) items[0].getData(); + + if (entry.isDirectory()) { + InputDialog inputDialog = new InputDialog(mTree.getShell(), "New Folder", + "Please enter the new folder name", "New Folder", new IInputValidator() { + public String isValid(String newText) { + if ((newText != null) && (newText.length() > 0) + && (newText.trim().length() > 0) + && (newText.indexOf('/') == -1) + && (newText.indexOf('\\') == -1)) { + return null; + } else { + return "Invalid name"; + } + } + }); + inputDialog.open(); + String value = inputDialog.getValue(); + + if (value != null) { + // create the mkdir command + String command = "mkdir " + entry.getFullEscapedPath() //$NON-NLS-1$ + + FileListingService.FILE_SEPARATOR + FileEntry.escape(value); + + try { + mCurrentDevice.executeShellCommand(command, new IShellOutputReceiver() { + + public boolean isCancelled() { + return false; + } + + public void flush() { + mTreeViewer.refresh(entry); + } + + public void addOutput(byte[] data, int offset, int length) { + String errorMessage; + if (data != null) { + errorMessage = new String(data); + } else { + errorMessage = ""; + } + Status status = new Status(IStatus.ERROR, + "DeviceExplorer", 0, errorMessage, null); //$NON-NLS-1$ + ErrorDialog.openError(mTree.getShell(), "New Folder Error", + "New Folder Error", status); + } + }); + } catch (TimeoutException e) { + // adb failed somehow, we do nothing. We should be + // displaying the error from the output of the shell + // command. + } catch (AdbCommandRejectedException e) { + // adb failed somehow, we do nothing. We should be + // displaying the error from the output of the shell + // command. + } catch (ShellCommandUnresponsiveException e) { + // adb failed somehow, we do nothing. We should be + // displaying the error from the output of the shell + // command. + } catch (IOException e) { + // adb failed somehow, we do nothing. We should be + // displaying the error from the output of the shell + // command. + } + } + } + } + /** * Force a full refresh of the explorer. */ diff --git a/ddms/libs/ddmuilib/src/com/android/ddmuilib/handler/MethodProfilingHandler.java b/ddms/libs/ddmuilib/src/com/android/ddmuilib/handler/MethodProfilingHandler.java index f6e2f19..10680f7 100644 --- a/ddms/libs/ddmuilib/src/com/android/ddmuilib/handler/MethodProfilingHandler.java +++ b/ddms/libs/ddmuilib/src/com/android/ddmuilib/handler/MethodProfilingHandler.java @@ -17,14 +17,14 @@ package com.android.ddmuilib.handler; import com.android.ddmlib.Client; +import com.android.ddmlib.ClientData.IMethodProfilingHandler; import com.android.ddmlib.DdmConstants; import com.android.ddmlib.IDevice; import com.android.ddmlib.Log; import com.android.ddmlib.SyncException; import com.android.ddmlib.SyncService; -import com.android.ddmlib.TimeoutException; -import com.android.ddmlib.ClientData.IMethodProfilingHandler; import com.android.ddmlib.SyncService.ISyncProgressMonitor; +import com.android.ddmlib.TimeoutException; import com.android.ddmuilib.DdmUiPreferences; import com.android.ddmuilib.SyncProgressHelper; import com.android.ddmuilib.SyncProgressHelper.SyncRunnable; @@ -126,7 +126,7 @@ public class MethodProfilingHandler extends BaseFileHandler SyncProgressHelper.run(new SyncRunnable() { public void run(ISyncProgressMonitor monitor) throws SyncException, IOException, TimeoutException { - sync.pullFile(tempPath, remoteFilePath, monitor); + sync.pullFile(remoteFilePath, tempPath, monitor); } public void close() { diff --git a/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/EditFilterDialog.java b/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/EditFilterDialog.java index 8bbc7c5..6cd44d0 100644 --- a/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/EditFilterDialog.java +++ b/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/EditFilterDialog.java @@ -43,7 +43,10 @@ import org.eclipse.swt.widgets.Text; public class EditFilterDialog extends Dialog { private static final int DLG_WIDTH = 400; - private static final int DLG_HEIGHT = 250; + private static final int DLG_HEIGHT = 260; + + private static final String IMAGE_WARNING = "warning.png"; //$NON-NLS-1$ + private static final String IMAGE_EMPTY = "empty.png"; //$NON-NLS-1$ private Shell mParent; @@ -68,6 +71,8 @@ public class EditFilterDialog extends Dialog { private Button mOkButton; + private Label mNameWarning; + private Label mTagWarning; private Label mPidWarning; public EditFilterDialog(Shell parent) { @@ -151,7 +156,7 @@ public class EditFilterDialog extends Dialog { // top part with the filter name Composite nameComposite = new Composite(mShell, SWT.NONE); nameComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); - nameComposite.setLayout(new GridLayout(2, false)); + nameComposite.setLayout(new GridLayout(3, false)); Label l = new Label(nameComposite, SWT.NONE); l.setText("Filter Name:"); @@ -172,6 +177,10 @@ public class EditFilterDialog extends Dialog { } }); + mNameWarning = new Label(nameComposite, SWT.NONE); + mNameWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage(IMAGE_EMPTY, + mShell.getDisplay())); + // separator l = new Label(mShell, SWT.SEPARATOR | SWT.HORIZONTAL); l.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); @@ -192,9 +201,8 @@ public class EditFilterDialog extends Dialog { tagText.setText(mTag); } } - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalSpan = 2; - tagText.setLayoutData(gd); + + tagText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); tagText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { mTag = tagText.getText().trim(); @@ -202,6 +210,10 @@ public class EditFilterDialog extends Dialog { } }); + mTagWarning = new Label(main, SWT.NONE); + mTagWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage(IMAGE_EMPTY, + mShell.getDisplay())); + l = new Label(main, SWT.NONE); l.setText("by pid:"); @@ -223,14 +235,14 @@ public class EditFilterDialog extends Dialog { }); mPidWarning = new Label(main, SWT.NONE); - mPidWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage("empty.png", //$NON-NLS-1$ + mPidWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage(IMAGE_EMPTY, mShell.getDisplay())); l = new Label(main, SWT.NONE); l.setText("by Log level:"); final Combo logCombo = new Combo(main, SWT.DROP_DOWN | SWT.READ_ONLY); - gd = new GridData(GridData.FILL_HORIZONTAL); + GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; logCombo.setLayoutData(gd); @@ -324,26 +336,58 @@ public class EditFilterDialog extends Dialog { */ private void validate() { + boolean result = true; + // then we check it only contains digits. if (mPid != null) { if (mPid.matches("[0-9]*") == false) { //$NON-NLS-1$ - mOkButton.setEnabled(false); mPidWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage( - "warning.png", //$NON-NLS-1$ + IMAGE_WARNING, mShell.getDisplay())); - return; + mPidWarning.setToolTipText("PID must be a number"); //$NON-NLS-1$ + result = false; } else { mPidWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage( - "empty.png", //$NON-NLS-1$ + IMAGE_EMPTY, mShell.getDisplay())); + mPidWarning.setToolTipText(null); } } - if (mName == null || mName.length() == 0) { - mOkButton.setEnabled(false); - return; + // then we check it not contains character | or : + if (mTag != null) { + if (mTag.matches(".*[:|].*") == true) { //$NON-NLS-1$ + mTagWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage( + IMAGE_WARNING, + mShell.getDisplay())); + mTagWarning.setToolTipText("Tag cannot contain | or :"); //$NON-NLS-1$ + result = false; + } else { + mTagWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage( + IMAGE_EMPTY, + mShell.getDisplay())); + mTagWarning.setToolTipText(null); + } + } + + // then we check it not contains character | or : + if (mName != null && mName.length() > 0) { + if (mName.matches(".*[:|].*") == true) { //$NON-NLS-1$ + mNameWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage( + IMAGE_WARNING, + mShell.getDisplay())); + mNameWarning.setToolTipText("Name cannot contain | or :"); //$NON-NLS-1$ + result = false; + } else { + mNameWarning.setImage(ImageLoader.getDdmUiLibLoader().loadImage( + IMAGE_EMPTY, + mShell.getDisplay())); + mNameWarning.setToolTipText(null); + } + } else { + result = false; } - mOkButton.setEnabled(true); + mOkButton.setEnabled(result); } } diff --git a/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogFilter.java b/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogFilter.java index 2f2cfef..74a5e37 100644 --- a/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogFilter.java +++ b/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogFilter.java @@ -79,7 +79,7 @@ public class LogFilter { private LogColors mColors; private boolean mTempFilteringStatus = false; - + private final ArrayList<LogMessage> mMessages = new ArrayList<LogMessage>(); private final ArrayList<LogMessage> mNewMessages = new ArrayList<LogMessage>(); @@ -283,7 +283,7 @@ public class LogFilter { } mIsCurrentTabItem = selected; } - + /** * Adds a new message and optionally removes an old message. * <p/>The new message is filtered through {@link #accept(LogMessage)}. @@ -301,7 +301,7 @@ public class LogFilter { mMessages.remove(index); mRemovedMessageCount++; } - + // now we look for it in mNewMessages. This can happen if the new message is added // and then removed because too many messages are added between calls to #flush() index = mNewMessages.indexOf(oldMessage); @@ -322,7 +322,7 @@ public class LogFilter { return filter; } } - + /** * Removes all the items in the filter and its {@link Table}. */ @@ -332,7 +332,7 @@ public class LogFilter { mMessages.clear(); mTable.removeAll(); } - + /** * Filters a message. * @param logMessage the Message @@ -401,13 +401,13 @@ public class LogFilter { // if scroll bar is at the bottom, we will scroll ScrollBar bar = mTable.getVerticalBar(); boolean scroll = bar.getMaximum() == bar.getSelection() + bar.getThumb(); - + // if we are not going to scroll, get the current first item being shown. int topIndex = mTable.getTopIndex(); // disable drawing mTable.setRedraw(false); - + int totalCount = mNewMessages.size(); try { @@ -415,11 +415,12 @@ public class LogFilter { for (int i = 0 ; i < mRemovedMessageCount && mTable.getItemCount() > 0 ; i++) { mTable.remove(0); } - + mRemovedMessageCount = 0; + if (mUnreadCount > mTable.getItemCount()) { mUnreadCount = mTable.getItemCount(); } - + // add the new items for (int i = 0 ; i < totalCount ; i++) { LogMessage msg = mNewMessages.get(i); @@ -430,7 +431,7 @@ public class LogFilter { // but at least ddms won't crash. Log.e("LogFilter", e); } - + // redraw mTable.setRedraw(true); @@ -467,7 +468,7 @@ public class LogFilter { mTabItem.setText(mName); //$NON-NLS-1$ } } - + mNewMessages.clear(); } diff --git a/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogPanel.java b/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogPanel.java index 80e24d3..80ed6e9 100644 --- a/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogPanel.java +++ b/ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogPanel.java @@ -1211,13 +1211,13 @@ public class LogPanel extends SelectionDependentPanel { } else { messageIndex = mBufferEnd; + // increment the next usable slot index + mBufferEnd = (mBufferEnd + 1) % STRING_BUFFER_LENGTH; + // check we aren't overwriting start if (mBufferEnd == mBufferStart) { mBufferStart = (mBufferStart + 1) % STRING_BUFFER_LENGTH; } - - // increment the next usable slot index - mBufferEnd = (mBufferEnd + 1) % STRING_BUFFER_LENGTH; } LogMessage oldMessage = null; diff --git a/ddms/libs/ddmuilib/src/resources/images/add.png b/ddms/libs/ddmuilib/src/images/add.png Binary files differindex eefc2ca..eefc2ca 100644 --- a/ddms/libs/ddmuilib/src/resources/images/add.png +++ b/ddms/libs/ddmuilib/src/images/add.png diff --git a/ddms/libs/ddmuilib/src/resources/images/android.png b/ddms/libs/ddmuilib/src/images/android.png Binary files differindex 3779d4d..3779d4d 100644 --- a/ddms/libs/ddmuilib/src/resources/images/android.png +++ b/ddms/libs/ddmuilib/src/images/android.png diff --git a/ddms/libs/ddmuilib/src/resources/images/backward.png b/ddms/libs/ddmuilib/src/images/backward.png Binary files differindex 90a9713..90a9713 100644 --- a/ddms/libs/ddmuilib/src/resources/images/backward.png +++ b/ddms/libs/ddmuilib/src/images/backward.png diff --git a/ddms/libs/ddmuilib/src/resources/images/capture.png b/ddms/libs/ddmuilib/src/images/capture.png Binary files differindex da5c10b..da5c10b 100644 --- a/ddms/libs/ddmuilib/src/resources/images/capture.png +++ b/ddms/libs/ddmuilib/src/images/capture.png diff --git a/ddms/libs/ddmuilib/src/resources/images/clear.png b/ddms/libs/ddmuilib/src/images/clear.png Binary files differindex 0009cf6..0009cf6 100644 --- a/ddms/libs/ddmuilib/src/resources/images/clear.png +++ b/ddms/libs/ddmuilib/src/images/clear.png diff --git a/ddms/libs/ddmuilib/src/resources/images/d.png b/ddms/libs/ddmuilib/src/images/d.png Binary files differindex d45506e..d45506e 100644 --- a/ddms/libs/ddmuilib/src/resources/images/d.png +++ b/ddms/libs/ddmuilib/src/images/d.png diff --git a/ddms/libs/ddmuilib/src/resources/images/debug-attach.png b/ddms/libs/ddmuilib/src/images/debug-attach.png Binary files differindex 9b8a11c..9b8a11c 100644 --- a/ddms/libs/ddmuilib/src/resources/images/debug-attach.png +++ b/ddms/libs/ddmuilib/src/images/debug-attach.png diff --git a/ddms/libs/ddmuilib/src/resources/images/debug-error.png b/ddms/libs/ddmuilib/src/images/debug-error.png Binary files differindex f22da1f..f22da1f 100644 --- a/ddms/libs/ddmuilib/src/resources/images/debug-error.png +++ b/ddms/libs/ddmuilib/src/images/debug-error.png diff --git a/ddms/libs/ddmuilib/src/resources/images/debug-wait.png b/ddms/libs/ddmuilib/src/images/debug-wait.png Binary files differindex 322be63..322be63 100644 --- a/ddms/libs/ddmuilib/src/resources/images/debug-wait.png +++ b/ddms/libs/ddmuilib/src/images/debug-wait.png diff --git a/ddms/libs/ddmuilib/src/resources/images/delete.png b/ddms/libs/ddmuilib/src/images/delete.png Binary files differindex db5fab8..db5fab8 100644 --- a/ddms/libs/ddmuilib/src/resources/images/delete.png +++ b/ddms/libs/ddmuilib/src/images/delete.png diff --git a/ddms/libs/ddmuilib/src/resources/images/device.png b/ddms/libs/ddmuilib/src/images/device.png Binary files differindex 7dbbbb6..7dbbbb6 100644 --- a/ddms/libs/ddmuilib/src/resources/images/device.png +++ b/ddms/libs/ddmuilib/src/images/device.png diff --git a/ddms/libs/ddmuilib/src/resources/images/down.png b/ddms/libs/ddmuilib/src/images/down.png Binary files differindex f9426cb..f9426cb 100644 --- a/ddms/libs/ddmuilib/src/resources/images/down.png +++ b/ddms/libs/ddmuilib/src/images/down.png diff --git a/ddms/libs/ddmuilib/src/resources/images/e.png b/ddms/libs/ddmuilib/src/images/e.png Binary files differindex dee7c97..dee7c97 100644 --- a/ddms/libs/ddmuilib/src/resources/images/e.png +++ b/ddms/libs/ddmuilib/src/images/e.png diff --git a/ddms/libs/ddmuilib/src/resources/images/edit.png b/ddms/libs/ddmuilib/src/images/edit.png Binary files differindex b8f65bc..b8f65bc 100644 --- a/ddms/libs/ddmuilib/src/resources/images/edit.png +++ b/ddms/libs/ddmuilib/src/images/edit.png diff --git a/ddms/libs/ddmuilib/src/resources/images/empty.png b/ddms/libs/ddmuilib/src/images/empty.png Binary files differindex f021542..f021542 100644 --- a/ddms/libs/ddmuilib/src/resources/images/empty.png +++ b/ddms/libs/ddmuilib/src/images/empty.png diff --git a/ddms/libs/ddmuilib/src/resources/images/emulator.png b/ddms/libs/ddmuilib/src/images/emulator.png Binary files differindex a718042..a718042 100644 --- a/ddms/libs/ddmuilib/src/resources/images/emulator.png +++ b/ddms/libs/ddmuilib/src/images/emulator.png diff --git a/ddms/libs/ddmuilib/src/resources/images/file.png b/ddms/libs/ddmuilib/src/images/file.png Binary files differindex 043a814..043a814 100644 --- a/ddms/libs/ddmuilib/src/resources/images/file.png +++ b/ddms/libs/ddmuilib/src/images/file.png diff --git a/ddms/libs/ddmuilib/src/resources/images/folder.png b/ddms/libs/ddmuilib/src/images/folder.png Binary files differindex 7e29b1a..7e29b1a 100644 --- a/ddms/libs/ddmuilib/src/resources/images/folder.png +++ b/ddms/libs/ddmuilib/src/images/folder.png diff --git a/ddms/libs/ddmuilib/src/resources/images/forward.png b/ddms/libs/ddmuilib/src/images/forward.png Binary files differindex a97a605..a97a605 100644 --- a/ddms/libs/ddmuilib/src/resources/images/forward.png +++ b/ddms/libs/ddmuilib/src/images/forward.png diff --git a/ddms/libs/ddmuilib/src/resources/images/gc.png b/ddms/libs/ddmuilib/src/images/gc.png Binary files differindex 5194806..5194806 100644 --- a/ddms/libs/ddmuilib/src/resources/images/gc.png +++ b/ddms/libs/ddmuilib/src/images/gc.png diff --git a/ddms/libs/ddmuilib/src/resources/images/halt.png b/ddms/libs/ddmuilib/src/images/halt.png Binary files differindex 10e3720..10e3720 100644 --- a/ddms/libs/ddmuilib/src/resources/images/halt.png +++ b/ddms/libs/ddmuilib/src/images/halt.png diff --git a/ddms/libs/ddmuilib/src/resources/images/heap.png b/ddms/libs/ddmuilib/src/images/heap.png Binary files differindex e3aa3f0..e3aa3f0 100644 --- a/ddms/libs/ddmuilib/src/resources/images/heap.png +++ b/ddms/libs/ddmuilib/src/images/heap.png diff --git a/ddms/libs/ddmuilib/src/resources/images/hprof.png b/ddms/libs/ddmuilib/src/images/hprof.png Binary files differindex 123d062..123d062 100644 --- a/ddms/libs/ddmuilib/src/resources/images/hprof.png +++ b/ddms/libs/ddmuilib/src/images/hprof.png diff --git a/ddms/libs/ddmuilib/src/resources/images/i.png b/ddms/libs/ddmuilib/src/images/i.png Binary files differindex 98385c5..98385c5 100644 --- a/ddms/libs/ddmuilib/src/resources/images/i.png +++ b/ddms/libs/ddmuilib/src/images/i.png diff --git a/ddms/libs/ddmuilib/src/resources/images/importBug.png b/ddms/libs/ddmuilib/src/images/importBug.png Binary files differindex f5da179..f5da179 100644 --- a/ddms/libs/ddmuilib/src/resources/images/importBug.png +++ b/ddms/libs/ddmuilib/src/images/importBug.png diff --git a/ddms/libs/ddmuilib/src/resources/images/load.png b/ddms/libs/ddmuilib/src/images/load.png Binary files differindex 9e7bf6e..9e7bf6e 100644 --- a/ddms/libs/ddmuilib/src/resources/images/load.png +++ b/ddms/libs/ddmuilib/src/images/load.png diff --git a/ddms/libs/ddmuilib/src/resources/images/pause.png b/ddms/libs/ddmuilib/src/images/pause.png Binary files differindex 19d286d..19d286d 100644 --- a/ddms/libs/ddmuilib/src/resources/images/pause.png +++ b/ddms/libs/ddmuilib/src/images/pause.png diff --git a/ddms/libs/ddmuilib/src/resources/images/play.png b/ddms/libs/ddmuilib/src/images/play.png Binary files differindex d54f013..d54f013 100644 --- a/ddms/libs/ddmuilib/src/resources/images/play.png +++ b/ddms/libs/ddmuilib/src/images/play.png diff --git a/ddms/libs/ddmuilib/src/resources/images/pull.png b/ddms/libs/ddmuilib/src/images/pull.png Binary files differindex f48f1b1..f48f1b1 100644 --- a/ddms/libs/ddmuilib/src/resources/images/pull.png +++ b/ddms/libs/ddmuilib/src/images/pull.png diff --git a/ddms/libs/ddmuilib/src/resources/images/push.png b/ddms/libs/ddmuilib/src/images/push.png Binary files differindex 6222864..6222864 100644 --- a/ddms/libs/ddmuilib/src/resources/images/push.png +++ b/ddms/libs/ddmuilib/src/images/push.png diff --git a/ddms/libs/ddmuilib/src/resources/images/save.png b/ddms/libs/ddmuilib/src/images/save.png Binary files differindex 040ebda..040ebda 100644 --- a/ddms/libs/ddmuilib/src/resources/images/save.png +++ b/ddms/libs/ddmuilib/src/images/save.png diff --git a/ddms/libs/ddmuilib/src/resources/images/sort_down.png b/ddms/libs/ddmuilib/src/images/sort_down.png Binary files differindex 2d4ccc1..2d4ccc1 100644 --- a/ddms/libs/ddmuilib/src/resources/images/sort_down.png +++ b/ddms/libs/ddmuilib/src/images/sort_down.png diff --git a/ddms/libs/ddmuilib/src/resources/images/sort_up.png b/ddms/libs/ddmuilib/src/images/sort_up.png Binary files differindex 3a0bc3c..3a0bc3c 100644 --- a/ddms/libs/ddmuilib/src/resources/images/sort_up.png +++ b/ddms/libs/ddmuilib/src/images/sort_up.png diff --git a/ddms/libs/ddmuilib/src/resources/images/thread.png b/ddms/libs/ddmuilib/src/images/thread.png Binary files differindex ac839e8..ac839e8 100644 --- a/ddms/libs/ddmuilib/src/resources/images/thread.png +++ b/ddms/libs/ddmuilib/src/images/thread.png diff --git a/ddms/libs/ddmuilib/src/resources/images/tracing_start.png b/ddms/libs/ddmuilib/src/images/tracing_start.png Binary files differindex 88771cc..88771cc 100644 --- a/ddms/libs/ddmuilib/src/resources/images/tracing_start.png +++ b/ddms/libs/ddmuilib/src/images/tracing_start.png diff --git a/ddms/libs/ddmuilib/src/resources/images/tracing_stop.png b/ddms/libs/ddmuilib/src/images/tracing_stop.png Binary files differindex 71bd215..71bd215 100644 --- a/ddms/libs/ddmuilib/src/resources/images/tracing_stop.png +++ b/ddms/libs/ddmuilib/src/images/tracing_stop.png diff --git a/ddms/libs/ddmuilib/src/resources/images/up.png b/ddms/libs/ddmuilib/src/images/up.png Binary files differindex 92edf5a..92edf5a 100644 --- a/ddms/libs/ddmuilib/src/resources/images/up.png +++ b/ddms/libs/ddmuilib/src/images/up.png diff --git a/ddms/libs/ddmuilib/src/resources/images/v.png b/ddms/libs/ddmuilib/src/images/v.png Binary files differindex 8044051..8044051 100644 --- a/ddms/libs/ddmuilib/src/resources/images/v.png +++ b/ddms/libs/ddmuilib/src/images/v.png diff --git a/ddms/libs/ddmuilib/src/resources/images/w.png b/ddms/libs/ddmuilib/src/images/w.png Binary files differindex 129d0f9..129d0f9 100644 --- a/ddms/libs/ddmuilib/src/resources/images/w.png +++ b/ddms/libs/ddmuilib/src/images/w.png diff --git a/ddms/libs/ddmuilib/src/resources/images/warning.png b/ddms/libs/ddmuilib/src/images/warning.png Binary files differindex ca3b6ed..ca3b6ed 100644 --- a/ddms/libs/ddmuilib/src/resources/images/warning.png +++ b/ddms/libs/ddmuilib/src/images/warning.png |