selectobject.java
来自「The ElectricTM VLSI Design System is an 」· Java 代码 · 共 541 行 · 第 1/2 页
JAVA
541 行
NodeInst ni = it.next(); allNames.add(ni.getName()); } } else if (arcs.isSelected()) { // show all arcs what = ARCS; for(Iterator<ArcInst> it = cell.getArcs(); it.hasNext(); ) { ArcInst ai = it.next(); allNames.add(ai.getName()); } } else if (exports.isSelected()) { // show all exports what = EXPORTS; for(Iterator<PortProto> it = cell.getPorts(); it.hasNext(); ) { Export pp = (Export)it.next(); allNames.add(pp.getName()); } } else { // show all networks what = NETS; Netlist netlist = cell.acquireUserNetlist(); if (netlist == null) { System.out.println("Sorry, a deadlock aborted selection (network information unavailable). Please try again"); return; } for(Iterator<Network> it = netlist.getNetworks(); it.hasNext(); ) { Network net = it.next(); String netName = net.describe(false); if (netName.length() == 0) continue; allNames.add(netName); } } Collections.sort(allNames, TextUtils.STRING_NUMBER_ORDER); for(String s: allNames) { model.addElement(s); } } private void searchTextChanged() { String currentSearchText = searchText.getText(); int flags = Pattern.CASE_INSENSITIVE+Pattern.UNICODE_CASE; Pattern p = Pattern.compile(currentSearchText, flags); if (currentSearchText.length() == 0) return; for(int i=0; i<model.size(); i++) { String s = (String)model.get(i); Matcher m = p.matcher(s); if (m.find())// if (s.startsWith(currentSearchText)) { list.setSelectedIndex(i); list.ensureIndexIsVisible(i); return; } } } /** * Class to handle changes to the search text field. */ private static class SelecdtObjectDocumentListener implements DocumentListener { SelectObject dialog; SelecdtObjectDocumentListener(SelectObject dialog) { this.dialog = dialog; } public void changedUpdate(DocumentEvent e) { dialog.searchTextChanged(); } public void insertUpdate(DocumentEvent e) { dialog.searchTextChanged(); } public void removeUpdate(DocumentEvent e) { dialog.searchTextChanged(); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; whatGroup = new javax.swing.ButtonGroup(); done = new javax.swing.JButton(); objectPane = new javax.swing.JScrollPane(); jLabel1 = new javax.swing.JLabel(); searchText = new javax.swing.JTextField(); findText = new javax.swing.JButton(); jPanel1 = new javax.swing.JPanel(); nodes = new javax.swing.JRadioButton(); exports = new javax.swing.JRadioButton(); arcs = new javax.swing.JRadioButton(); networks = new javax.swing.JRadioButton(); getContentPane().setLayout(new java.awt.GridBagLayout()); setTitle("Select Object"); setName(""); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); done.setText("Done"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 3; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); getContentPane().add(done, gridBagConstraints); objectPane.setMinimumSize(new java.awt.Dimension(200, 200)); objectPane.setPreferredSize(new java.awt.Dimension(200, 200)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); getContentPane().add(objectPane, gridBagConstraints); jLabel1.setText("Search:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); getContentPane().add(jLabel1, gridBagConstraints); searchText.setColumns(8); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); getContentPane().add(searchText, gridBagConstraints); findText.setText("Find"); findText.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { findTextActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); getContentPane().add(findText, gridBagConstraints); jPanel1.setLayout(new java.awt.GridBagLayout()); whatGroup.add(nodes); nodes.setText("Nodes"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); jPanel1.add(nodes, gridBagConstraints); whatGroup.add(exports); exports.setText("Exports"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); jPanel1.add(exports, gridBagConstraints); whatGroup.add(arcs); arcs.setText("Arcs"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); jPanel1.add(arcs, gridBagConstraints); whatGroup.add(networks); networks.setText("Networks"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); jPanel1.add(networks, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; getContentPane().add(jPanel1, gridBagConstraints); pack(); } // </editor-fold>//GEN-END:initComponents private void findTextActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_findTextActionPerformed {//GEN-HEADEREND:event_findTextActionPerformed String search = searchText.getText(); int flags = Pattern.CASE_INSENSITIVE+Pattern.UNICODE_CASE; Pattern p = Pattern.compile(search, flags); list.clearSelection(); List<Integer> selected = new ArrayList<Integer>(); for(int i = 0; i < model.getSize(); i++) { String thisLine = (String)model.getElementAt(i); Matcher m = p.matcher(thisLine); if (m.find())// if (thisLine.matches(search)) selected.add(new Integer(i)); } if (selected.size() > 0) { int [] indices = new int[selected.size()]; int i = 0; for(Integer iO: selected) indices[i++] = iO.intValue(); list.setSelectedIndices(indices); } listClicked(); }//GEN-LAST:event_findTextActionPerformed /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt)//GEN-FIRST:event_closeDialog { setVisible(false); dispose(); }//GEN-LAST:event_closeDialog // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JRadioButton arcs; private javax.swing.JButton done; private javax.swing.JRadioButton exports; private javax.swing.JButton findText; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JRadioButton networks; private javax.swing.JRadioButton nodes; private javax.swing.JScrollPane objectPane; private javax.swing.JTextField searchText; private javax.swing.ButtonGroup whatGroup; // End of variables declaration//GEN-END:variables}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?