aboutsummaryrefslogtreecommitdiffstats
path: root/ddms/libs/ddmuilib/src
diff options
context:
space:
mode:
Diffstat (limited to 'ddms/libs/ddmuilib/src')
-rw-r--r--ddms/libs/ddmuilib/src/Android.mk27
-rw-r--r--ddms/libs/ddmuilib/src/com/android/ddmuilib/ImageLoader.java9
-rw-r--r--ddms/libs/ddmuilib/src/com/android/ddmuilib/ScreenShotDialog.java19
-rw-r--r--ddms/libs/ddmuilib/src/com/android/ddmuilib/explorer/DeviceExplorer.java97
-rw-r--r--ddms/libs/ddmuilib/src/com/android/ddmuilib/handler/MethodProfilingHandler.java6
-rw-r--r--ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/EditFilterDialog.java74
-rw-r--r--ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogFilter.java23
-rw-r--r--ddms/libs/ddmuilib/src/com/android/ddmuilib/logcat/LogPanel.java6
-rw-r--r--ddms/libs/ddmuilib/src/images/add.png (renamed from ddms/libs/ddmuilib/src/resources/images/add.png)bin146 -> 146 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/android.png (renamed from ddms/libs/ddmuilib/src/resources/images/android.png)bin3609 -> 3609 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/backward.png (renamed from ddms/libs/ddmuilib/src/resources/images/backward.png)bin136 -> 136 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/capture.png (renamed from ddms/libs/ddmuilib/src/resources/images/capture.png)bin691 -> 691 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/clear.png (renamed from ddms/libs/ddmuilib/src/resources/images/clear.png)bin217 -> 217 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/d.png (renamed from ddms/libs/ddmuilib/src/resources/images/d.png)bin638 -> 638 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/debug-attach.png (renamed from ddms/libs/ddmuilib/src/resources/images/debug-attach.png)bin156 -> 156 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/debug-error.png (renamed from ddms/libs/ddmuilib/src/resources/images/debug-error.png)bin222 -> 222 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/debug-wait.png (renamed from ddms/libs/ddmuilib/src/resources/images/debug-wait.png)bin156 -> 156 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/delete.png (renamed from ddms/libs/ddmuilib/src/resources/images/delete.png)bin107 -> 107 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/device.png (renamed from ddms/libs/ddmuilib/src/resources/images/device.png)bin135 -> 135 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/down.png (renamed from ddms/libs/ddmuilib/src/resources/images/down.png)bin141 -> 141 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/e.png (renamed from ddms/libs/ddmuilib/src/resources/images/e.png)bin511 -> 511 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/edit.png (renamed from ddms/libs/ddmuilib/src/resources/images/edit.png)bin223 -> 223 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/empty.png (renamed from ddms/libs/ddmuilib/src/resources/images/empty.png)bin75 -> 75 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/emulator.png (renamed from ddms/libs/ddmuilib/src/resources/images/emulator.png)bin287 -> 287 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/file.png (renamed from ddms/libs/ddmuilib/src/resources/images/file.png)bin157 -> 157 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/folder.png (renamed from ddms/libs/ddmuilib/src/resources/images/folder.png)bin123 -> 123 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/forward.png (renamed from ddms/libs/ddmuilib/src/resources/images/forward.png)bin137 -> 137 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/gc.png (renamed from ddms/libs/ddmuilib/src/resources/images/gc.png)bin165 -> 165 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/halt.png (renamed from ddms/libs/ddmuilib/src/resources/images/halt.png)bin197 -> 197 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/heap.png (renamed from ddms/libs/ddmuilib/src/resources/images/heap.png)bin222 -> 222 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/hprof.png (renamed from ddms/libs/ddmuilib/src/resources/images/hprof.png)bin317 -> 317 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/i.png (renamed from ddms/libs/ddmuilib/src/resources/images/i.png)bin498 -> 498 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/importBug.png (renamed from ddms/libs/ddmuilib/src/resources/images/importBug.png)bin191 -> 191 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/load.png (renamed from ddms/libs/ddmuilib/src/resources/images/load.png)bin163 -> 163 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/pause.png (renamed from ddms/libs/ddmuilib/src/resources/images/pause.png)bin98 -> 98 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/play.png (renamed from ddms/libs/ddmuilib/src/resources/images/play.png)bin138 -> 138 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/pull.png (renamed from ddms/libs/ddmuilib/src/resources/images/pull.png)bin329 -> 329 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/push.png (renamed from ddms/libs/ddmuilib/src/resources/images/push.png)bin228 -> 228 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/save.png (renamed from ddms/libs/ddmuilib/src/resources/images/save.png)bin240 -> 240 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/sort_down.png (renamed from ddms/libs/ddmuilib/src/resources/images/sort_down.png)bin102 -> 102 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/sort_up.png (renamed from ddms/libs/ddmuilib/src/resources/images/sort_up.png)bin105 -> 105 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/thread.png (renamed from ddms/libs/ddmuilib/src/resources/images/thread.png)bin121 -> 121 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/tracing_start.png (renamed from ddms/libs/ddmuilib/src/resources/images/tracing_start.png)bin227 -> 227 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/tracing_stop.png (renamed from ddms/libs/ddmuilib/src/resources/images/tracing_stop.png)bin217 -> 217 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/up.png (renamed from ddms/libs/ddmuilib/src/resources/images/up.png)bin134 -> 134 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/v.png (renamed from ddms/libs/ddmuilib/src/resources/images/v.png)bin587 -> 587 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/w.png (renamed from ddms/libs/ddmuilib/src/resources/images/w.png)bin681 -> 681 bytes
-rw-r--r--ddms/libs/ddmuilib/src/images/warning.png (renamed from ddms/libs/ddmuilib/src/resources/images/warning.png)bin147 -> 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
index eefc2ca..eefc2ca 100644
--- a/ddms/libs/ddmuilib/src/resources/images/add.png
+++ b/ddms/libs/ddmuilib/src/images/add.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/android.png b/ddms/libs/ddmuilib/src/images/android.png
index 3779d4d..3779d4d 100644
--- a/ddms/libs/ddmuilib/src/resources/images/android.png
+++ b/ddms/libs/ddmuilib/src/images/android.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/backward.png b/ddms/libs/ddmuilib/src/images/backward.png
index 90a9713..90a9713 100644
--- a/ddms/libs/ddmuilib/src/resources/images/backward.png
+++ b/ddms/libs/ddmuilib/src/images/backward.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/capture.png b/ddms/libs/ddmuilib/src/images/capture.png
index da5c10b..da5c10b 100644
--- a/ddms/libs/ddmuilib/src/resources/images/capture.png
+++ b/ddms/libs/ddmuilib/src/images/capture.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/clear.png b/ddms/libs/ddmuilib/src/images/clear.png
index 0009cf6..0009cf6 100644
--- a/ddms/libs/ddmuilib/src/resources/images/clear.png
+++ b/ddms/libs/ddmuilib/src/images/clear.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/d.png b/ddms/libs/ddmuilib/src/images/d.png
index d45506e..d45506e 100644
--- a/ddms/libs/ddmuilib/src/resources/images/d.png
+++ b/ddms/libs/ddmuilib/src/images/d.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/debug-attach.png b/ddms/libs/ddmuilib/src/images/debug-attach.png
index 9b8a11c..9b8a11c 100644
--- a/ddms/libs/ddmuilib/src/resources/images/debug-attach.png
+++ b/ddms/libs/ddmuilib/src/images/debug-attach.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/debug-error.png b/ddms/libs/ddmuilib/src/images/debug-error.png
index f22da1f..f22da1f 100644
--- a/ddms/libs/ddmuilib/src/resources/images/debug-error.png
+++ b/ddms/libs/ddmuilib/src/images/debug-error.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/debug-wait.png b/ddms/libs/ddmuilib/src/images/debug-wait.png
index 322be63..322be63 100644
--- a/ddms/libs/ddmuilib/src/resources/images/debug-wait.png
+++ b/ddms/libs/ddmuilib/src/images/debug-wait.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/delete.png b/ddms/libs/ddmuilib/src/images/delete.png
index db5fab8..db5fab8 100644
--- a/ddms/libs/ddmuilib/src/resources/images/delete.png
+++ b/ddms/libs/ddmuilib/src/images/delete.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/device.png b/ddms/libs/ddmuilib/src/images/device.png
index 7dbbbb6..7dbbbb6 100644
--- a/ddms/libs/ddmuilib/src/resources/images/device.png
+++ b/ddms/libs/ddmuilib/src/images/device.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/down.png b/ddms/libs/ddmuilib/src/images/down.png
index f9426cb..f9426cb 100644
--- a/ddms/libs/ddmuilib/src/resources/images/down.png
+++ b/ddms/libs/ddmuilib/src/images/down.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/e.png b/ddms/libs/ddmuilib/src/images/e.png
index dee7c97..dee7c97 100644
--- a/ddms/libs/ddmuilib/src/resources/images/e.png
+++ b/ddms/libs/ddmuilib/src/images/e.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/edit.png b/ddms/libs/ddmuilib/src/images/edit.png
index b8f65bc..b8f65bc 100644
--- a/ddms/libs/ddmuilib/src/resources/images/edit.png
+++ b/ddms/libs/ddmuilib/src/images/edit.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/empty.png b/ddms/libs/ddmuilib/src/images/empty.png
index f021542..f021542 100644
--- a/ddms/libs/ddmuilib/src/resources/images/empty.png
+++ b/ddms/libs/ddmuilib/src/images/empty.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/emulator.png b/ddms/libs/ddmuilib/src/images/emulator.png
index a718042..a718042 100644
--- a/ddms/libs/ddmuilib/src/resources/images/emulator.png
+++ b/ddms/libs/ddmuilib/src/images/emulator.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/file.png b/ddms/libs/ddmuilib/src/images/file.png
index 043a814..043a814 100644
--- a/ddms/libs/ddmuilib/src/resources/images/file.png
+++ b/ddms/libs/ddmuilib/src/images/file.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/folder.png b/ddms/libs/ddmuilib/src/images/folder.png
index 7e29b1a..7e29b1a 100644
--- a/ddms/libs/ddmuilib/src/resources/images/folder.png
+++ b/ddms/libs/ddmuilib/src/images/folder.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/forward.png b/ddms/libs/ddmuilib/src/images/forward.png
index a97a605..a97a605 100644
--- a/ddms/libs/ddmuilib/src/resources/images/forward.png
+++ b/ddms/libs/ddmuilib/src/images/forward.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/gc.png b/ddms/libs/ddmuilib/src/images/gc.png
index 5194806..5194806 100644
--- a/ddms/libs/ddmuilib/src/resources/images/gc.png
+++ b/ddms/libs/ddmuilib/src/images/gc.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/halt.png b/ddms/libs/ddmuilib/src/images/halt.png
index 10e3720..10e3720 100644
--- a/ddms/libs/ddmuilib/src/resources/images/halt.png
+++ b/ddms/libs/ddmuilib/src/images/halt.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/heap.png b/ddms/libs/ddmuilib/src/images/heap.png
index e3aa3f0..e3aa3f0 100644
--- a/ddms/libs/ddmuilib/src/resources/images/heap.png
+++ b/ddms/libs/ddmuilib/src/images/heap.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/hprof.png b/ddms/libs/ddmuilib/src/images/hprof.png
index 123d062..123d062 100644
--- a/ddms/libs/ddmuilib/src/resources/images/hprof.png
+++ b/ddms/libs/ddmuilib/src/images/hprof.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/i.png b/ddms/libs/ddmuilib/src/images/i.png
index 98385c5..98385c5 100644
--- a/ddms/libs/ddmuilib/src/resources/images/i.png
+++ b/ddms/libs/ddmuilib/src/images/i.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/importBug.png b/ddms/libs/ddmuilib/src/images/importBug.png
index f5da179..f5da179 100644
--- a/ddms/libs/ddmuilib/src/resources/images/importBug.png
+++ b/ddms/libs/ddmuilib/src/images/importBug.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/load.png b/ddms/libs/ddmuilib/src/images/load.png
index 9e7bf6e..9e7bf6e 100644
--- a/ddms/libs/ddmuilib/src/resources/images/load.png
+++ b/ddms/libs/ddmuilib/src/images/load.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/pause.png b/ddms/libs/ddmuilib/src/images/pause.png
index 19d286d..19d286d 100644
--- a/ddms/libs/ddmuilib/src/resources/images/pause.png
+++ b/ddms/libs/ddmuilib/src/images/pause.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/play.png b/ddms/libs/ddmuilib/src/images/play.png
index d54f013..d54f013 100644
--- a/ddms/libs/ddmuilib/src/resources/images/play.png
+++ b/ddms/libs/ddmuilib/src/images/play.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/pull.png b/ddms/libs/ddmuilib/src/images/pull.png
index f48f1b1..f48f1b1 100644
--- a/ddms/libs/ddmuilib/src/resources/images/pull.png
+++ b/ddms/libs/ddmuilib/src/images/pull.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/push.png b/ddms/libs/ddmuilib/src/images/push.png
index 6222864..6222864 100644
--- a/ddms/libs/ddmuilib/src/resources/images/push.png
+++ b/ddms/libs/ddmuilib/src/images/push.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/save.png b/ddms/libs/ddmuilib/src/images/save.png
index 040ebda..040ebda 100644
--- a/ddms/libs/ddmuilib/src/resources/images/save.png
+++ b/ddms/libs/ddmuilib/src/images/save.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/sort_down.png b/ddms/libs/ddmuilib/src/images/sort_down.png
index 2d4ccc1..2d4ccc1 100644
--- a/ddms/libs/ddmuilib/src/resources/images/sort_down.png
+++ b/ddms/libs/ddmuilib/src/images/sort_down.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/sort_up.png b/ddms/libs/ddmuilib/src/images/sort_up.png
index 3a0bc3c..3a0bc3c 100644
--- a/ddms/libs/ddmuilib/src/resources/images/sort_up.png
+++ b/ddms/libs/ddmuilib/src/images/sort_up.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/thread.png b/ddms/libs/ddmuilib/src/images/thread.png
index ac839e8..ac839e8 100644
--- a/ddms/libs/ddmuilib/src/resources/images/thread.png
+++ b/ddms/libs/ddmuilib/src/images/thread.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/tracing_start.png b/ddms/libs/ddmuilib/src/images/tracing_start.png
index 88771cc..88771cc 100644
--- a/ddms/libs/ddmuilib/src/resources/images/tracing_start.png
+++ b/ddms/libs/ddmuilib/src/images/tracing_start.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/tracing_stop.png b/ddms/libs/ddmuilib/src/images/tracing_stop.png
index 71bd215..71bd215 100644
--- a/ddms/libs/ddmuilib/src/resources/images/tracing_stop.png
+++ b/ddms/libs/ddmuilib/src/images/tracing_stop.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/up.png b/ddms/libs/ddmuilib/src/images/up.png
index 92edf5a..92edf5a 100644
--- a/ddms/libs/ddmuilib/src/resources/images/up.png
+++ b/ddms/libs/ddmuilib/src/images/up.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/v.png b/ddms/libs/ddmuilib/src/images/v.png
index 8044051..8044051 100644
--- a/ddms/libs/ddmuilib/src/resources/images/v.png
+++ b/ddms/libs/ddmuilib/src/images/v.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/w.png b/ddms/libs/ddmuilib/src/images/w.png
index 129d0f9..129d0f9 100644
--- a/ddms/libs/ddmuilib/src/resources/images/w.png
+++ b/ddms/libs/ddmuilib/src/images/w.png
Binary files differ
diff --git a/ddms/libs/ddmuilib/src/resources/images/warning.png b/ddms/libs/ddmuilib/src/images/warning.png
index ca3b6ed..ca3b6ed 100644
--- a/ddms/libs/ddmuilib/src/resources/images/warning.png
+++ b/ddms/libs/ddmuilib/src/images/warning.png
Binary files differ