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

📄 waveformwindow.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			public void actionPerformed(ActionEvent evt) { togglePanelName(); }		});		growPanel = new JButton(iconGrowPanel);		growPanel.setBorderPainted(false);		growPanel.setDefaultCapable(false);		growPanel.setToolTipText("Increase minimum panel height");		minWid = new Dimension(iconGrowPanel.getIconWidth()+4, iconGrowPanel.getIconHeight()+4);		growPanel.setMinimumSize(minWid);		growPanel.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 8;       gbc.gridy = 0;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(growPanel, gbc);		growPanel.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { growPanels(1.25); }		});		shrinkPanel = new JButton(iconShrinkPanel);		shrinkPanel.setBorderPainted(false);		shrinkPanel.setDefaultCapable(false);		shrinkPanel.setToolTipText("Decrease minimum panel height");		minWid = new Dimension(iconShrinkPanel.getIconWidth()+4, iconShrinkPanel.getIconHeight()+4);		shrinkPanel.setMinimumSize(minWid);		shrinkPanel.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 9;       gbc.gridy = 0;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(shrinkPanel, gbc);		shrinkPanel.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { growPanels(0.8); }		});		// the X axis section that shows the value of the main and extension cursors		JPanel xAxisLabelPanel = new JPanel();		xAxisLabelPanel.setLayout(new GridBagLayout());		gbc = new GridBagConstraints();		gbc.gridx = 10;      gbc.gridy = 0;		gbc.weightx = 1;     gbc.weighty = 0;		gbc.anchor = GridBagConstraints.CENTER;		gbc.fill = GridBagConstraints.HORIZONTAL;		gbc.insets = new Insets(0, 4, 0, 4);		overall.add(xAxisLabelPanel, gbc);		mainPos = new JLabel("Main:", JLabel.RIGHT);		mainPos.setToolTipText("The main (dashed) X axis cursor");		gbc = new GridBagConstraints();		gbc.gridx = 0;       gbc.gridy = 0;		gbc.weightx = 0.2;   gbc.weighty = 0;		gbc.anchor = GridBagConstraints.CENTER;		gbc.fill = GridBagConstraints.HORIZONTAL;		gbc.insets = new Insets(0, 0, 0, 0);		xAxisLabelPanel.add(mainPos, gbc);		centerMain = new JButton("Center");		centerMain.setToolTipText("Center the main (dashed) X axis cursor");		gbc = new GridBagConstraints();		gbc.gridx = 1;       gbc.gridy = 0;		gbc.anchor = GridBagConstraints.WEST;		gbc.insets = new Insets(2, 4, 2, 0);		xAxisLabelPanel.add(centerMain, gbc);		centerMain.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { centerCursor(true); }		});		extPos = new JLabel("Ext:", JLabel.RIGHT);		extPos.setToolTipText("The extension (dotted) X axis cursor");		gbc = new GridBagConstraints();		gbc.gridx = 2;       gbc.gridy = 0;		gbc.weightx = 0.2;   gbc.weighty = 0;		gbc.anchor = GridBagConstraints.CENTER;		gbc.fill = GridBagConstraints.HORIZONTAL;		gbc.insets = new Insets(0, 0, 0, 0);		xAxisLabelPanel.add(extPos, gbc);		centerExt = new JButton("Center");		centerExt.setToolTipText("Center the extension (dotted) X axis cursor");		gbc = new GridBagConstraints();		gbc.gridx = 3;       gbc.gridy = 0;		gbc.anchor = GridBagConstraints.WEST;		gbc.insets = new Insets(2, 4, 2, 0);		xAxisLabelPanel.add(centerExt, gbc);		centerExt.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { centerCursor(false); }		});		delta = new JLabel("Delta:", JLabel.CENTER);		delta.setToolTipText("X distance between cursors");		gbc = new GridBagConstraints();		gbc.gridx = 4;       gbc.gridy = 0;		gbc.weightx = 0.2;   gbc.weighty = 0;		gbc.anchor = GridBagConstraints.CENTER;		gbc.fill = GridBagConstraints.HORIZONTAL;		gbc.insets = new Insets(0, 0, 0, 0);		xAxisLabelPanel.add(delta, gbc);		// the name of the waveform disk file		if (sd.getFileURL() != null)		{			String fileName = TextUtils.getFileNameWithoutExtension(sd.getFileURL());			String ext = TextUtils.getExtension(sd.getFileURL());			if (ext.length() > 0) fileName += "." + ext;			diskLabel = new JLabel("File: " + fileName, JLabel.CENTER);			diskLabel.setToolTipText("The disk file that is being displayed");			gbc = new GridBagConstraints();			gbc.gridx = 5;       gbc.gridy = 0;			gbc.weightx = 0.4;   gbc.weighty = 0;			gbc.anchor = GridBagConstraints.CENTER;			gbc.fill = GridBagConstraints.HORIZONTAL;			gbc.insets = new Insets(0, 10, 0, 0);			xAxisLabelPanel.add(diskLabel, gbc);		}		// add VCR controls		JButton vcrButtonRewind = new JButton(iconVCRRewind);		vcrButtonRewind.setBorderPainted(false);		vcrButtonRewind.setDefaultCapable(false);		vcrButtonRewind.setToolTipText("Rewind main X axis cursor to start");		minWid = new Dimension(iconVCRRewind.getIconWidth()+4, iconVCRRewind.getIconHeight()+4);		vcrButtonRewind.setMinimumSize(minWid);		vcrButtonRewind.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 3;       gbc.gridy = 1;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(vcrButtonRewind, gbc);		vcrButtonRewind.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { vcrClickRewind(); }		});		JButton vcrButtonPlayBackwards = new JButton(iconVCRPlayBackward);		vcrButtonPlayBackwards.setBorderPainted(false);		vcrButtonPlayBackwards.setDefaultCapable(false);		vcrButtonPlayBackwards.setToolTipText("Play main X axis cursor backwards");		minWid = new Dimension(iconVCRPlayBackward.getIconWidth()+4, iconVCRPlayBackward.getIconHeight()+4);		vcrButtonPlayBackwards.setMinimumSize(minWid);		vcrButtonPlayBackwards.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 4;       gbc.gridy = 1;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(vcrButtonPlayBackwards, gbc);		vcrButtonPlayBackwards.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { vcrClickPlayBackwards(); }		});		JButton vcrButtonStop = new JButton(iconVCRStop);		vcrButtonStop.setBorderPainted(false);		vcrButtonStop.setDefaultCapable(false);		vcrButtonStop.setToolTipText("Stop moving main X axis cursor");		minWid = new Dimension(iconVCRStop.getIconWidth()+4, iconVCRStop.getIconHeight()+4);		vcrButtonStop.setMinimumSize(minWid);		vcrButtonStop.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 5;       gbc.gridy = 1;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(vcrButtonStop, gbc);		vcrButtonStop.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { vcrClickStop(); }		});		JButton vcrButtonPlay = new JButton(iconVCRPlay);		vcrButtonPlay.setBorderPainted(false);		vcrButtonPlay.setDefaultCapable(false);		vcrButtonPlay.setToolTipText("Play main X axis cursor");		minWid = new Dimension(iconVCRPlay.getIconWidth()+4, iconVCRPlay.getIconHeight()+4);		vcrButtonPlay.setMinimumSize(minWid);		vcrButtonPlay.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 6;       gbc.gridy = 1;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(vcrButtonPlay, gbc);		vcrButtonPlay.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { vcrClickPlay(); }		});		JButton vcrButtonToEnd = new JButton(iconVCRToEnd);		vcrButtonToEnd.setBorderPainted(false);		vcrButtonToEnd.setDefaultCapable(false);		vcrButtonToEnd.setToolTipText("Move main X axis cursor to end");		minWid = new Dimension(iconVCRToEnd.getIconWidth()+4, iconVCRToEnd.getIconHeight()+4);		vcrButtonToEnd.setMinimumSize(minWid);		vcrButtonToEnd.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 7;       gbc.gridy = 1;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(vcrButtonToEnd, gbc);		vcrButtonToEnd.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { vcrClickToEnd(); }		});		JButton vcrButtonFaster = new JButton(iconVCRFaster);		vcrButtonFaster.setBorderPainted(false);		vcrButtonFaster.setDefaultCapable(false);		vcrButtonFaster.setToolTipText("Move main X axis cursor faster");		minWid = new Dimension(iconVCRFaster.getIconWidth()+4, iconVCRFaster.getIconHeight()+4);		vcrButtonFaster.setMinimumSize(minWid);		vcrButtonFaster.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 8;       gbc.gridy = 1;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(vcrButtonFaster, gbc);		vcrButtonFaster.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { vcrClickFaster(); }		});		JButton vcrButtonSlower = new JButton(iconVCRSlower);		vcrButtonSlower.setBorderPainted(false);		vcrButtonSlower.setDefaultCapable(false);		vcrButtonSlower.setToolTipText("Move main X axis cursor slower");		minWid = new Dimension(iconVCRSlower.getIconWidth()+4, iconVCRSlower.getIconHeight()+4);		vcrButtonSlower.setMinimumSize(minWid);		vcrButtonSlower.setPreferredSize(minWid);		gbc = new GridBagConstraints();		gbc.gridx = 9;       gbc.gridy = 1;		gbc.anchor = GridBagConstraints.CENTER;		overall.add(vcrButtonSlower, gbc);		vcrButtonSlower.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt) { vcrClickSlower(); }		});		// the single horizontal ruler panel (when the X axes are locked)		if (xAxisLocked)		{			addMainHorizRulerPanel();		}		// set bounds of the window from extent of the data		Rectangle2D dataBounds = sd.getBounds();		if (dataBounds != null)		{			double lowTime = dataBounds.getMinX();			double highTime = dataBounds.getMaxX();			double timeRange = highTime - lowTime;			setMainXPositionCursor(timeRange*0.2 + lowTime);			setExtensionXPositionCursor(timeRange*0.8 + lowTime);			setDefaultHorizontalRange(lowTime, highTime);		}	}	private class WaveTable extends JTable	{		private WaveformWindow ww;		WaveTable(TableModel model, WaveformWindow ww)		{			super(model);			this.ww = ww;		}	}	private class WaveTableModel extends DefaultTableModel	{		public int getColumnCount() { return 2; }		public int getRowCount()		{			int numVisPanels = 0;			for(Panel wp : wavePanels)			{				if (!wp.isHidden()) numVisPanels++;			}			return numVisPanels;		}		public Object getValueAt(int row, int col)		{			int rowNo = 0;			for(Panel panel : wavePanels)			{				if (panel.isHidden()) continue;				if (rowNo == row)				{					if (col == 0) return panel.getLeftHalf();					return panel.getRightHalf();				}				rowNo++;			}			return null;		}		public void setValueAt(Object obj, int row, int col) {}		public Class<?> getColumnClass(int column)		{			return JPanel.class;		}	}	static class WaveCellEditor extends AbstractCellEditor		implements TableCellRenderer, TableCellEditor	{		private Component lastOne;		public WaveCellEditor(JTable table, int column)		{			super();			TableColumnModel columnModel = table.getColumnModel();			columnModel.getColumn(column).setCellRenderer(this);			columnModel.getColumn(column).setCellEditor(this);		}		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)		{			return (Component)table.getValueAt(row, column);		}		public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)		{			lastOne = (Component)table.getValueAt(row, column);			return lastOne;		}		public Object getCellEditorValue()		{			return lastOne;		}	}	private class TableMouseListener implements MouseListener, MouseMotionListener	{		private int mouseXOffset, mouseYOffset, resizingRow;		private TableColumn resizingColumn;		private JTable table;		public TableMouseListener(JTable table)		{			this.table = table;			table.addMouseListener(this);			table.addMouseMotionListener(this);		}		private TableColumn getResizingColumn(Point p)		{			int column = table.columnAtPoint(p);			if (column == -1) return null;			int row = table.rowAtPoint(p);			if (row == -1) return null;			Rectangle r = table.getCellRect(row, column, true);			r.grow(-3, 0);			if (r.contains(p)) return null;			int midPoint = r.x + r.width / 2;			int columnIndex = (p.x < midPoint) ? column - 1 : column;			if (columnIndex == -1) return null;			return table.getTableHeader().getColumnModel().getColumn(columnIndex);		}		private int getResizingRow(Point p)		{			int row = table.rowAtPoint(p);			if (row == -1) return -1;			int col = table.columnAtPoint(p);			if (col == -1) return -1;			Rectangle r = table.getCellRect(row, col, true);			r.grow(0, -3);			if (r.contains(p)) return -1;			int midPoint = r.y + r.height / 2;			int rowIndex = (p.y < midPoint) ? row - 1 : row;			return rowIndex;		}		public void mouseClicked(MouseEvent e)		{			// forward event to the panel contents			forwardEventToPanel(e);		}		public void mouseEntered(MouseEvent e)		{			// forward event to the panel contents			forwardEventToPanel(e);		}		public void mouseExited(MouseEvent e)		{			// forward event to the panel contents			forwardEventToPanel(e);		}		public void mousePressed(MouseEvent e)		{			table.getTableHeader().setResizingColumn(null);			// figure out if a divider was hit			Point p = e.getPoint();			resizingColumn = getResizingColumn(p);			if (resizingColumn != null)			{				resizingRow = -1;				table.getTableHeader().setResizingColumn(resizingColumn);				mouseXOffset = p.x - resizingColumn.getWidth();				return;			}			resizingRow = getResizingRow(p);			if (resizingRow >= 0)			{

⌨️ 快捷键说明

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