org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumBreakpointWBAFactory.java
changeset 2 e4420d2515f1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumBreakpointWBAFactory.java	Wed Dec 23 17:13:18 2009 -0800
@@ -0,0 +1,58 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.debug.core.model;
+
+import org.chromium.debug.core.ChromiumDebugPlugin;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+
+/**
+ * An IWorkbenchAdapter factory for ChromiumLineBreakpoints.
+ */
+public class ChromiumBreakpointWBAFactory implements IAdapterFactory {
+
+  protected static final Object[] EMPTY_CHILDREN = new Object[0];
+
+  @SuppressWarnings("unchecked")
+  public Object getAdapter(Object adaptableObject, Class adapterType) {
+    if (adapterType != IWorkbenchAdapter.class ||
+        !(adaptableObject instanceof ChromiumLineBreakpoint)) {
+      return null;
+    }
+    return new IWorkbenchAdapter() {
+
+      public Object[] getChildren(Object o) {
+        return EMPTY_CHILDREN;
+      }
+
+      public ImageDescriptor getImageDescriptor(Object object) {
+        return null;
+      }
+
+      public String getLabel(Object o) {
+        ChromiumLineBreakpoint bp = (ChromiumLineBreakpoint) o;
+        try {
+          return bp.getMarker().getAttribute(IMarker.MESSAGE).toString();
+        } catch (CoreException e) {
+          ChromiumDebugPlugin.log(e);
+        }
+        return null;
+      }
+
+      public Object getParent(Object o) {
+        return null;
+      }
+    };
+  }
+
+  @SuppressWarnings("unchecked")
+  public Class[] getAdapterList() {
+    return new Class[] { IWorkbenchAdapter.class };
+  }
+
+}