⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorpatternpanel.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			transparentLayer.setEnabled(false);		} else		{			useStipplePatternDisplay.setEnabled(true);			outlinePattern.setEnabled(true);			useStipplePatternPrinter.setEnabled(true);			transparentLayer.setEnabled(true);		}		dataChanging = true;		useStipplePatternDisplay.setSelected(li.useStippleDisplay);		if (li.outlinePatternDisplay != null) // special cases such text don't have outlinePattern            outlinePattern.setSelectedItem(outlineImageIcons.get(li.outlinePatternDisplay));		outlinePattern.setEnabled(li.useStippleDisplay);		if (showPrinter)		{			useStipplePatternPrinter.setSelected(li.useStipplePrinter);			opacity.setText(TextUtils.formatDouble(li.opacity));		}		if (li.transparentLayer < transparentLayer.getItemCount())			transparentLayer.setSelectedIndex(li.transparentLayer);		Color initialColor = new Color(li.red, li.green, li.blue);		colorChooser.setColor(initialColor);		colorPreviewPanel.setPreviewColor(initialColor);		patternView.repaint();		colorPreviewPanel.repaint();		dataChanging = false;	}	/**	 * Method called when the color picker selects a new color.	 */	private void colorChanged()	{		if (dataChanging) return;		if (currentLI == null) return;		Color col = colorChooser.getColor();		currentLI.red = col.getRed();		currentLI.green = col.getGreen();		currentLI.blue = col.getBlue();		layerInfoChanged();		colorPreviewPanel.setPreviewColor(col);		// if there are other transparent layers, warn (first time only)		if (otherTransparentLayers != null)		{			if (!warnedOfTransparentLayerSharing)				Job.getUserInterface().showInformationMessage("WARNING: changing this color also affects " +					otherTransparentLayers + " because they share the same transparent layer",					"Change to Transparent Layer Color");			warnedOfTransparentLayerSharing = true;		}	}	private void transparentLayerChanged()	{		if (currentLI == null) return;		currentLI.transparentLayer = transparentLayer.getSelectedIndex();		if (currentLI.transparentLayer > 0 && colorMap != null)		{			if (currentLI.transparentLayer > colorMap.length)			{				transparentLayer.setSelectedIndex(0);				return;			}			currentLI.red = colorMap[currentLI.transparentLayer-1].getRed();			currentLI.green = colorMap[currentLI.transparentLayer-1].getGreen();			currentLI.blue = colorMap[currentLI.transparentLayer-1].getBlue();			layerInfoChanged();		}	}	private void layerInfoChanged()	{		if (dataChanging) return;		if (currentLI == null) return;		currentLI.useStippleDisplay = useStipplePatternDisplay.isSelected();		List<Outline> outlines = Outline.getOutlines();		currentLI.outlinePatternDisplay = outlines.get(outlinePattern.getSelectedIndex());		outlinePattern.setEnabled(currentLI.useStippleDisplay);		if (showPrinter)		{			currentLI.useStipplePrinter = useStipplePatternPrinter.isSelected();		}		currentLI.transparentLayer = transparentLayer.getSelectedIndex();//		boolean colorsEnabled = currentLI.transparentLayer == 0;		currentLI.opacity = TextUtils.atof(opacity.getText());		Color newColor = new Color(currentLI.red, currentLI.green, currentLI.blue);		colorChooser.setColor(newColor);		if (currentLI.transparentLayer != 0)			colorMap[currentLI.transparentLayer-1] = newColor;		colorPreviewPanel.repaint();	}	/**	 * Class to handle special changes to color information.	 */	private class LayerColorDocumentListener implements DocumentListener	{		LayerColorDocumentListener() {}		public void changedUpdate(DocumentEvent e) { layerInfoChanged(); }		public void insertUpdate(DocumentEvent e) { layerInfoChanged(); }		public void removeUpdate(DocumentEvent e) { layerInfoChanged(); }	}	private class PatternView extends JPanel		implements MouseMotionListener, MouseListener	{		private static final int PATSIZE = 13;		private boolean newState;		private JCheckBox stipple;		private JComboBox outline;		private Info lInfo;		PatternView(Info lInfo, JCheckBox stipple, JComboBox outline)		{			this.lInfo = lInfo;			this.stipple = stipple;			this.outline = outline;			addMouseListener(this);			addMouseMotionListener(this);			int totSize = PATSIZE*16+1;			setMaximumSize(new Dimension(totSize, totSize));			setMinimumSize(new Dimension(totSize, totSize));			setPreferredSize(new Dimension(totSize, totSize));		}		public void setLayerInfo(Info lInfo) { this.lInfo = lInfo; }		/**		 * Method to repaint this PatternView.		 */		public void paint(Graphics g)		{			Dimension dim = getSize();			g.setColor(Color.WHITE);			g.fillRect(0, 0, dim.width, dim.height);			g.setColor(Color.GRAY);			int upper = PATSIZE * 16;			for(int i=0; i<=upper; i += PATSIZE)			{				g.drawLine(i, 0, i, upper);				g.drawLine(0, i, upper, i);			}			g.setColor(Color.BLACK);			if (lInfo == null || lInfo.justColor) return;			for(int y=0; y<16; y++)			{				int bits = lInfo.pattern[y];				for(int x=0; x<16; x++)				{					if ((bits & (1<<(15-x))) != 0)					{						g.fillRect(x*PATSIZE+1, y*PATSIZE+1, PATSIZE-1, PATSIZE-1);					}				}			}		}		// the MouseListener events		public void mousePressed(MouseEvent evt)		{			if (lInfo == null || lInfo.justColor) return;			int xIndex = evt.getX() / PATSIZE;			int yIndex = evt.getY() / PATSIZE;			int curWord = lInfo.pattern[yIndex];			newState = (curWord & (1<<(15-xIndex))) == 0;			mouseDragged(evt);		}		public void mouseReleased(MouseEvent evt) {}		public void mouseClicked(MouseEvent evt) {}		public void mouseEntered(MouseEvent evt) {}		public void mouseExited(MouseEvent evt) {}		// the MouseMotionListener events		public void mouseMoved(MouseEvent evt) {}		public void mouseDragged(MouseEvent evt)		{			if (lInfo == null || lInfo.justColor) return;			int xIndex = evt.getX() / PATSIZE;			int yIndex = evt.getY() / PATSIZE;			if (xIndex < 0 || yIndex < 0 || xIndex >= 16 || yIndex >= 16) return;			int curWord = lInfo.pattern[yIndex];			if ((curWord & (1<<(15-xIndex))) != 0)			{				if (newState) return;				curWord &= ~(1<<(15-xIndex));			} else			{				if (!newState) return;				curWord |= 1<<(15-xIndex);			}			lInfo.pattern[yIndex] = curWord;			// fake a check in the stipple use			stipple.setSelected(true);			outline.setEnabled(true);			lInfo.useStippleDisplay = true;			repaint();			colorPreviewPanel.repaint();		}	}	private static final int [] preDefinedPatterns =	{		0x8888,  // X   X   X   X   		0x4444,  //  X   X   X   X  		0x2222,  //   X   X   X   X 		0x1111,  //    X   X   X   X		0x8888,  // X   X   X   X   		0x4444,  //  X   X   X   X  		0x2222,  //   X   X   X   X 		0x1111,  //    X   X   X   X		0x8888,  // X   X   X   X   		0x4444,  //  X   X   X   X  		0x2222,  //   X   X   X   X 		0x1111,  //    X   X   X   X		0x8888,  // X   X   X   X   		0x4444,  //  X   X   X   X  		0x2222,  //   X   X   X   X 		0x1111,  //    X   X   X   X		0x8888,  // X   X   X   X   		0x1111,  //    X   X   X   X		0x2222,  //   X   X   X   X 		0x4444,  //  X   X   X   X  		0x8888,  // X   X   X   X   		0x1111,  //    X   X   X   X		0x2222,  //   X   X   X   X 		0x4444,  //  X   X   X   X  		0x8888,  // X   X   X   X   		0x1111,  //    X   X   X   X		0x2222,  //   X   X   X   X 		0x4444,  //  X   X   X   X  		0x8888,  // X   X   X   X   		0x1111,  //    X   X   X   X		0x2222,  //   X   X   X   X 		0x4444,  //  X   X   X   X  		0xCCCC,  // XX  XX  XX  XX  		0xCCCC,  // XX  XX  XX  XX  		0x3333,  //   XX  XX  XX  XX		0x3333,  //   XX  XX  XX  XX		0xCCCC,  // XX  XX  XX  XX  		0xCCCC,  // XX  XX  XX  XX  		0x3333,  //   XX  XX  XX  XX		0x3333,  //   XX  XX  XX  XX		0xCCCC,  // XX  XX  XX  XX  		0xCCCC,  // XX  XX  XX  XX  		0x3333,  //   XX  XX  XX  XX		0x3333,  //   XX  XX  XX  XX		0xCCCC,  // XX  XX  XX  XX  		0xCCCC,  // XX  XX  XX  XX  		0x3333,  //   XX  XX  XX  XX		0x3333,  //   XX  XX  XX  XX		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xFFFF,  // XXXXXXXXXXXXXXXX		0x0000,  //                 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0xAAAA,  // X X X X X X X X 		0x6060,  //  XX      XX     		0x9090,  // X  X    X  X    		0x9090,  // X  X    X  X    		0x6060,  //  XX      XX     		0x0606,  //      XX      XX 		0x0909,  //     X  X    X  X		0x0909,  //     X  X    X  X		0x0606,  //      XX      XX 		0x6060,  //  XX      XX     		0x9090,  // X  X    X  X    		0x9090,  // X  X    X  X    		0x6060,  //  XX      XX     		0x0606,  //      XX      XX 		0x0909,  //     X  X    X  X		0x0909,  //     X  X    X  X		0x0606,  //      XX      XX 		0x2222,  //   X   X   X   X 		0x0000,  //                 		0x8888,  // X   X   X   X   		0x0000,  //                 		0x2222,  //   X   X   X   X 		0x0000,  //                 		0x8888,  // X   X   X   X   		0x0000,  //                 		0x2222,  //   X   X   X   X 		0x0000,  //                 		0x8888,  // X   X   X   X   		0x0000,  //                 		0x2222,  //   X   X   X   X 		0x0000,  //                 		0x8888,  // X   X   X   X   		0x0000,  //                 		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x4444,  //  X   X   X   X  		0x1111,  //    X   X   X   X		0x1010,  //    X       X    		0x2020,  //   X       X     		0x4040,  //  X       X      		0x8080,  // X       X       		0x0101,  //        X       X		0x0202,  //       X       X 		0x0404,  //      X       X  		0x0808,  //     X       X   		0x1010,  //    X       X    		0x2020,  //   X       X     		0x4040,  //  X       X      		0x8080,  // X       X       		0x0101,  //        X       X		0x0202,  //       X       X 		0x0404,  //      X       X  		0x0808,  //     X       X   		0x0808,  //     X       X   		0x0404,  //      X       X  		0x0202,  //       X       X 		0x0101,  //        X       X		0x8080,  // X       X       		0x4040,  //  X       X      		0x2020,  //   X       X     		0x1010,  //    X       X    		0x0808,  //     X       X   		0x0404,  //      X       X  		0x0202,  //       X       X 		0x0101,  //        X       X		0x8080,  // X       X       		0x4040,  //  X       X      		0x2020,  //   X       X     		0x1010,  //    X       X    		0x4040,  //  X       X      		0x8080,  // X       X       		0x0101,  //        X       X		0x0202,  //       X       X 		0x0101,  //        X       X		0x8080,  // X       X       		0x4040,  //  X       X      		0x2020,  //   X       X     		0x4040,  //  X       X      		0x8080,  // X       X       		0x0101,  //        X       X		0x0202,  //       X       X 		0x0101,  //        X       X		0x8080,  // X       X       		0x4040,  //  X       X      		0x2020,  //   X       X     		0x2020,  //   X       X     		0x0000,  //                 		0x8080,  // X       X       		0x0000,  //                 		0x0202,  //       X       X 		0x0000,  //                 		0x0808,  //     X       X   		0x0000,  //                 		0x2020,  //   X       X     		0x0000,  //                 		0x8080,  // X       X       		0x0000,  //                 		0x0202,  //       X       X 		0x0000,  //                 		0x0808,  //     X       X   		0x0000,  //                 		0x0808,  //     X       X   		0x0000,  //                 		0x0202,  //       X       X 		0x0000,  //                 		0x8080,  // X       X       		0x0000,  //                 		0x2020,  //   X       X     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -