package bluej.debugmgr.objectbench;

import javax.swing.SwingUtilities;
import javafx.beans.binding.When;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
import javafx.scene.effect.DropShadow;
import javafx.scene.layout.AnchorPane;

import bluej.debugger.*;
import bluej.debugmgr.inspector.ObjectBackground;
import bluej.pkgmgr.PkgMgrFrame;
import bluej.prefmgr.PrefMgr;
import threadchecker.OnThread;
import threadchecker.Tag;


| A wrapper around array objects. | | The array wrapper is represented by a few red ovals that are visible on the | object bench. | | @author Andrew Patterson | @author Bruce Quig | @version $Id: ArrayWrapper.java 16633 2016-09-30 20:47:52Z nccb $ | @OnThread(Tag.FXPlatform) public class ArrayWrapper extends ObjectWrapper{ public static int WORD_GAP = 8; public static int SHADOW_SIZE = 3; public static int ARRAY_GAP = 3; public ArrayWrapper(PkgMgrFrame pmf, ObjectBench ob, DebuggerObject obj, String instanceName) { super(pmf, ob, obj, obj.getGenType(), instanceName); } @Override protected void createComponent(Label label) { AnchorPane multipleBackgrounds = new AnchorPane(); for (int i = 2; i >= 0; i--) { ObjectBackground bk = new ObjectBackground(CORNER_SIZE, new When(focusedProperty()).then(FOCUSED_BORDER).otherwise(UNFOCUSED_BORDER)); multipleBackgrounds.getChildren().add(bk); AnchorPane.setTopAnchor(bk, (double)(i * ARRAY_GAP)); AnchorPane.setLeftAnchor(bk, (double)(i * ARRAY_GAP)); AnchorPane.setRightAnchor(bk, (double)((2-i) * ARRAY_GAP)); AnchorPane.setBottomAnchor(bk, (double)((2-i) * ARRAY_GAP)); } getChildren().addAll(multipleBackgrounds, label); setBackground(null); setEffect(new DropShadow(SHADOW_RADIUS, SHADOW_RADIUS/2.0, SHADOW_RADIUS/2.0, javafx.scene.paint.Color.GRAY)); } }
top, use, map, class ArrayWrapper

.   ArrayWrapper
.   createComponent




52 neLoCode + 6 LoComm