aboutsummaryrefslogtreecommitdiff
path: root/hierarchyviewer/src/com/android/hierarchyviewer/scene/ViewHierarchyScene.java
diff options
context:
space:
mode:
Diffstat (limited to 'hierarchyviewer/src/com/android/hierarchyviewer/scene/ViewHierarchyScene.java')
-rw-r--r--hierarchyviewer/src/com/android/hierarchyviewer/scene/ViewHierarchyScene.java262
1 files changed, 0 insertions, 262 deletions
diff --git a/hierarchyviewer/src/com/android/hierarchyviewer/scene/ViewHierarchyScene.java b/hierarchyviewer/src/com/android/hierarchyviewer/scene/ViewHierarchyScene.java
deleted file mode 100644
index 08dc39590..000000000
--- a/hierarchyviewer/src/com/android/hierarchyviewer/scene/ViewHierarchyScene.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (C) 2008 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.hierarchyviewer.scene;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.Rectangle;
-import java.awt.geom.Point2D;
-
-import org.netbeans.api.visual.action.ActionFactory;
-import org.netbeans.api.visual.action.WidgetAction;
-import org.netbeans.api.visual.anchor.AnchorFactory;
-import org.netbeans.api.visual.border.BorderFactory;
-import org.netbeans.api.visual.graph.GraphScene;
-import org.netbeans.api.visual.layout.LayoutFactory;
-import org.netbeans.api.visual.model.ObjectState;
-import org.netbeans.api.visual.widget.ConnectionWidget;
-import org.netbeans.api.visual.widget.LabelWidget;
-import org.netbeans.api.visual.widget.LayerWidget;
-import org.netbeans.api.visual.widget.Widget;
-
-public class ViewHierarchyScene extends GraphScene<ViewNode, String> {
- private ViewNode root;
- private LayerWidget widgetLayer;
- private LayerWidget connectionLayer;
-
- private WidgetAction moveAction = ActionFactory.createMoveAction();
-
- public ViewHierarchyScene() {
- widgetLayer = new LayerWidget(this);
- connectionLayer = new LayerWidget(this);
-
- addChild(widgetLayer);
- addChild(connectionLayer);
- }
-
- public ViewNode getRoot() {
- return root;
- }
-
- void setRoot(ViewNode root) {
- this.root = root;
- }
-
- @Override
- protected Widget attachNodeWidget(ViewNode node) {
- Widget widget = createBox(node, node.name, node.id);
- widget.getActions().addAction(createSelectAction());
- widget.getActions().addAction(moveAction);
- widgetLayer.addChild(widget);
- return widget;
- }
-
- private Widget createBox(ViewNode node, String nodeName, String id) {
- final String shortName = getShortName(nodeName);
- node.setShortName(shortName);
-
- GradientWidget box = new GradientWidget(this, node);
- box.setLayout(LayoutFactory.createVerticalFlowLayout());
- box.setBorder(BorderFactory.createLineBorder(2, Color.BLACK));
- box.setOpaque(true);
-
- LabelWidget label = new LabelWidget(this);
- label.setFont(getDefaultFont().deriveFont(Font.PLAIN, 12.0f));
- label.setLabel(shortName);
- label.setBorder(BorderFactory.createEmptyBorder(6, 6, 0, 6));
- label.setAlignment(LabelWidget.Alignment.CENTER);
-
- box.addChild(label);
-
- label = new LabelWidget(this);
- label.setFont(getDefaultFont().deriveFont(Font.PLAIN, 10.0f));
- label.setLabel(getAddress(nodeName));
- label.setBorder(BorderFactory.createEmptyBorder(3, 6, 0, 6));
- label.setAlignment(LabelWidget.Alignment.CENTER);
-
- box.addressWidget = label;
-
- box.addChild(label);
-
- label = new LabelWidget(this);
- label.setFont(getDefaultFont().deriveFont(Font.PLAIN, 10.0f));
- label.setLabel(id);
- label.setBorder(BorderFactory.createEmptyBorder(3, 6, 6, 6));
- label.setAlignment(LabelWidget.Alignment.CENTER);
-
- box.addChild(label);
-
- return box;
- }
-
- private static String getAddress(String name) {
- String[] nameAndHashcode = name.split("@");
- return "@" + nameAndHashcode[1];
- }
-
- private static String getShortName(String name) {
- String[] nameAndHashcode = name.split("@");
- String[] packages = nameAndHashcode[0].split("\\.");
- return packages[packages.length - 1];
- }
-
- @Override
- protected Widget attachEdgeWidget(String edge) {
- ConnectionWidget connectionWidget = new ConnectionWidget(this);
- connectionLayer.addChild(connectionWidget);
- return connectionWidget;
- }
-
- @Override
- protected void attachEdgeSourceAnchor(String edge, ViewNode oldSourceNode, ViewNode sourceNode) {
- final ConnectionWidget connection = (ConnectionWidget) findWidget(edge);
- final Widget source = findWidget(sourceNode);
- connection.bringToBack();
- source.bringToFront();
- connection.setSourceAnchor(AnchorFactory.createRectangularAnchor(source));
- }
-
- @Override
- protected void attachEdgeTargetAnchor(String edge, ViewNode oldTargetNode, ViewNode targetNode) {
- final ConnectionWidget connection = (ConnectionWidget) findWidget(edge);
- final Widget target = findWidget(targetNode);
- connection.bringToBack();
- target.bringToFront();
- connection.setTargetAnchor(AnchorFactory.createRectangularAnchor(target));
- }
-
- private static class GradientWidget extends Widget implements ViewNode.StateListener {
- public static final GradientPaint BLUE_EXPERIENCE = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(168, 204, 241),
- new Point2D.Double(0, 1),
- new Color(44, 61, 146));
- public static final GradientPaint MAC_OSX_SELECTED = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(81, 141, 236),
- new Point2D.Double(0, 1),
- new Color(36, 96, 192));
- public static final GradientPaint MAC_OSX = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(167, 210, 250),
- new Point2D.Double(0, 1),
- new Color(99, 147, 206));
- public static final GradientPaint AERITH = new GradientPaint(
- new Point2D.Double(0, 0),
- Color.WHITE,
- new Point2D.Double(0, 1),
- new Color(64, 110, 161));
- public static final GradientPaint GRAY = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(226, 226, 226),
- new Point2D.Double(0, 1),
- new Color(250, 248, 248));
- public static final GradientPaint RED_XP = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(236, 81, 81),
- new Point2D.Double(0, 1),
- new Color(192, 36, 36));
- public static final GradientPaint NIGHT_GRAY = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(102, 111, 127),
- new Point2D.Double(0, 1),
- new Color(38, 45, 61));
- public static final GradientPaint NIGHT_GRAY_LIGHT = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(129, 138, 155),
- new Point2D.Double(0, 1),
- new Color(58, 66, 82));
- public static final GradientPaint NIGHT_GRAY_VERY_LIGHT = new GradientPaint(
- new Point2D.Double(0, 0),
- new Color(129, 138, 155, 60),
- new Point2D.Double(0, 1),
- new Color(58, 66, 82, 60));
-
- private static Color UNSELECTED = Color.BLACK;
- private static Color SELECTED = Color.WHITE;
-
- private final ViewNode node;
-
- private LabelWidget addressWidget;
-
- private boolean isSelected = false;
- private final GradientPaint selectedGradient = MAC_OSX_SELECTED;
- private final GradientPaint filteredGradient = RED_XP;
- private final GradientPaint focusGradient = NIGHT_GRAY_VERY_LIGHT;
-
- public GradientWidget(ViewHierarchyScene scene, ViewNode node) {
- super(scene);
- this.node = node;
- node.setStateListener(this);
- }
-
- @Override
- protected void notifyStateChanged(ObjectState previous, ObjectState state) {
- super.notifyStateChanged(previous, state);
- isSelected = state.isSelected() || state.isFocused() || state.isWidgetFocused();
-
- pickChildrenColor();
- }
-
- private void pickChildrenColor() {
- for (Widget child : getChildren()) {
- child.setForeground(isSelected || node.filtered ? SELECTED : UNSELECTED);
- }
-
- repaint();
- }
-
- @Override
- protected void paintBackground() {
- super.paintBackground();
-
- Graphics2D g2 = getGraphics();
- Rectangle bounds = getBounds();
-
- if (!isSelected) {
- if (!node.filtered) {
- if (!node.hasFocus) {
- g2.setColor(Color.WHITE);
- } else {
- g2.setPaint(new GradientPaint(bounds.x, bounds.y,
- focusGradient.getColor1(), bounds.x, bounds.x + bounds.height,
- focusGradient.getColor2()));
- }
- } else {
- g2.setPaint(new GradientPaint(bounds.x, bounds.y, filteredGradient.getColor1(),
- bounds.x, bounds.x + bounds.height, filteredGradient.getColor2()));
- }
- } else {
- g2.setPaint(new GradientPaint(bounds.x, bounds.y, selectedGradient.getColor1(),
- bounds.x, bounds.x + bounds.height, selectedGradient.getColor2()));
- }
- g2.fillRect(bounds.x, bounds.y, bounds.width, bounds.height);
- }
-
- public void nodeStateChanged(ViewNode node) {
- pickChildrenColor();
- }
-
- public void nodeIndexChanged(ViewNode node) {
- if (addressWidget != null) {
- addressWidget.setLabel("#" + node.index + addressWidget.getLabel());
- }
- }
- }
-}