/* VisAD system for interactive analysis and visualization of numerical data. Copyright (C) 1996 - 2017 Bill Hibbard, Curtis Rueden, Tom Rink, Dave Glowacki, Steve Emmerson, Tom Whittaker, Don Murray, and Tommy Jasmin. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ import java.rmi.RemoteException; import visad.*; import visad.java2d.DisplayImplJ2D; public class Test53 extends UISkeleton { private boolean isServer = false; public Test53() { } public Test53(String[] args) throws RemoteException, VisADException { super(args); } DisplayImpl[] setupServerDisplays() throws RemoteException, VisADException { DisplayImpl[] dpys = new DisplayImpl[1]; dpys[0] = new DisplayImplJ2D("display"); return dpys; } void setupServerData(LocalDisplay[] dpys) throws RemoteException, VisADException { RealType ir_radiance = RealType.getRealType("ir_radiance"); RealType count = RealType.getRealType("count"); FunctionType ir_histogram = new FunctionType(ir_radiance, count); int size = 64; FlatField histogram1 = FlatField.makeField(ir_histogram, size, false); dpys[0].addMap(new ScalarMap(count, Display.YAxis)); dpys[0].addMap(new ScalarMap(ir_radiance, Display.XAxis)); dpys[0].addMap(new ConstantMap(0.0, Display.Red)); dpys[0].addMap(new ConstantMap(1.0, Display.Green)); dpys[0].addMap(new ConstantMap(0.0, Display.Blue)); DataReferenceImpl ref_histogram1; ref_histogram1 = new DataReferenceImpl("ref_histogram1"); ref_histogram1.setData(histogram1); dpys[0].addReference(ref_histogram1, null); isServer = true; } private static String colorName(float[] color) { int red = (int )(256.0f * color[0]) / 64; int green = (int )(256.0f * color[1]) / 64; int blue = (int )(256.0f * color[2]) / 64; if (red == green && green == blue) { switch (red) { case 0: return "black"; case 1: return "dark gray"; case 2: return "light gray"; default: return "white"; } } if (red > 0) { if (green > 0) { if (blue > 0) { } else { return "yellow"; } } else { // green == 0 if (blue > 0) { // green == 0 return "magenta"; } else { return "red"; } } } else { // red == 0 if (green > 0) { if (blue > 0) { return "cyan"; } else { return "green"; } } else { if (blue > 0) { return "blue"; } } } return "color[" + color[0] + "/" + color[1] + "/" + color[2] + "]"; } void setupUI(LocalDisplay[] dpys) throws RemoteException, VisADException { super.setupUI(dpys); float[][] bg_color = {{1.0f, 0.0f, 1.0f}, {1.0f, 1.0f, 0.0f}, {0.0f, 1.0f, 1.0f}}; float[][] box_color = {{1.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f}, {0.0f, 0.0f, 1.0f}, {0.5f, 0.5f, 0.5f}}; float[][] cursor_color = {{0.5f, 0.5f, 0.5f}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f}, {0.0f, 0.0f, 1.0f}}; DisplayRenderer displayRenderer = dpys[0].getDisplayRenderer(); int i3 = 0; int i4 = 0; while (isServer) { // delay(5000); try { Thread.sleep(5000); } catch (InterruptedException e) { } boolean boxOn = (i3 != 2); // System.out.println("\ndelay\n"); System.out.println("\n" + colorName(bg_color[i3]) + " background, " + (boxOn ? colorName(box_color[i4]) + " box" : "box off") + ", " + colorName(cursor_color[i4]) + " cursor\n"); displayRenderer.setBackgroundColor(bg_color[i3][0], bg_color[i3][1], bg_color[i3][2]); displayRenderer.setBoxOn(boxOn); displayRenderer.setBoxColor(box_color[i4][0], box_color[i4][1], box_color[i4][2]); displayRenderer.setCursorColor(cursor_color[i4][0], cursor_color[i4][1], cursor_color[i4][2]); if (i3 == 2) { i3 = 0; } else { i3++; } if (i4 == 3) { i4 = 0; } else { i4++; } } } String getFrameTitle() { return "background color in Java2D"; } public String toString() { return ": background color in Java2D"; } public static void main(String[] args) throws RemoteException, VisADException { new Test53(args); } }