scrollPane.getViewport().setBackground(Color.white);
	public HCL(Dataset matrix, double minValue, double maxValue, Dendrogram sampleTree, Dendrogram geneTree) {		this.matrix = matrix;		geneNamesDrawer = new GeneNames();		sampleNamesDrawer = new SampleNames();		this.minValue = minValue;		this.maxValue = maxValue;		nx = matrix.getColumnDimension();		ny = matrix.getRowDimension();		this.sampleTree = sampleTree;		this.geneTree = geneTree;		if(sampleTree != null) {			sampleTree.addNodeSelectionListener(this);		}		if(geneTree != null) {			geneTree.addNodeSelectionListener(this);		}		ToolTipManager toolTipManager = ToolTipManager.sharedInstance();		toolTipManager.registerComponent(this);		setBackground(Color.white);		setMinMax(0, nx - 1, 0, ny);		setPixPerUnit(INITIAL_X_PIX_PER_UNIT, INITIAL_Y_PIX_PER_UNIT);		pinkOGramAndGeneNamesPanel.setLayout(new GridBagLayout());		pinkOGramAndGeneNamesPanel.setBackground(Color.white);		pinkOGramAndGeneNamesPanel.add(this, new GridBagConstraints(0, 1, 1, 1, 0.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		pinkOGramAndGeneNamesPanel.add(geneNamesDrawer, new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		headerPanel.setLayout(new BorderLayout());		headerPanel.setBackground(Color.white);		headerPanel.add(sampleNamesDrawer, BorderLayout.SOUTH);		KeyStroke up = KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_UP, 0);		// zoom in		KeyStroke down = KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_DOWN, 0);		// zoom out		zoomInAction =			new AbstractAction() {				public void actionPerformed(ActionEvent e) {					zoomIn();				}			};		zoomOutAction =			new AbstractAction() {				public void actionPerformed(ActionEvent e) {					if(getXPixPerUnit() > 2) {						// 2 is min size						zoomOut();					}				}			};		pink_geneTree_sampleTreePanel.setLayout(new GridBagLayout());		pink_geneTree_sampleTreePanel.setBackground(Color.white);		final int rows = sampleTree == null ? 1 : 2;		final int cols = geneTree == null ? 3 : 4;		if(sampleTree != null) {			;			//pink_geneTree_sampleTreePanel.add(sampleTree, new GridBagConstraints(cols - 3, rows - 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		}		if(geneTree != null) {			pink_geneTree_sampleTreePanel.add(geneTree, new GridBagConstraints(cols - 4, rows - 1, 1, 1, 0.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		}		pink_geneTree_sampleTreePanel.add(pinkOGramAndGeneNamesPanel, new GridBagConstraints(cols - 3, rows - 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		topPanel = new JPanel(new BorderLayout());		topPanel.setBackground(Color.white);		topPanel.add(headerPanel, BorderLayout.NORTH);		if(sampleTree != null) {			topPanel.add(sampleTree, BorderLayout.SOUTH);		}		scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);		scrollPane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);		scrollPane.setViewportView(pink_geneTree_sampleTreePanel);		scrollPane.revalidate();		scrollPane.setColumnHeaderView(topPanel);		/*		 *  following does not work under OS X 1.4		 *  scrollPane.getInputMap().put(up, "zoom in");		 *  scrollPane.getActionMap().put("zoom in", zoomInAction);		 *  scrollPane.getInputMap().put(down, "zoom out");		 *  scrollPane.getActionMap().put("zoom out", zoomOutAction);		 */		scrollPane.registerKeyboardAction(zoomInAction, "zoom in", up, JComponent.WHEN_IN_FOCUSED_WINDOW);		scrollPane.registerKeyboardAction(zoomOutAction, "zoom out", down, JComponent.WHEN_IN_FOCUSED_WINDOW);		setColorConverter(new RowColorConverter(ColorResponse.LINEAR, getMatrix()));	}