📄 searchfilesdialog.java
字号:
panel.add(optionsPanel, gbc); gbc.gridy = 5; gbc.gridx = 1; gbc.anchor = GridBagConstraints.EAST; gbc.gridwidth = 1; gbc.weighty = 0; gbc.insets.top = 0; gbc.fill = GridBagConstraints.NONE; gbc.weightx = 1.0; panel.add(findButton, gbc); gbc.gridx = 2; gbc.insets.left = 0; gbc.weightx = 0; panel.add(cancelButton, gbc); gbc.gridy = 6; gbc.gridx = 0; gbc.anchor = GridBagConstraints.NORTHWEST; gbc.gridwidth = GridBagConstraints.REMAINDER; gbc.fill = GridBagConstraints.BOTH; gbc.weighty = 1.0; gbc.weightx = 1.0; gbc.insets.left = 5; panel.add(resultsScroll, gbc); gbc.gridy = 7; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weighty = 0; panel.add(resultsSummary, gbc); regexCheck.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { wholeWordsCheck.setEnabled(!regexCheck.isSelected()); } }); ActionListener buttonListener = new ActionListener() { public void actionPerformed(ActionEvent e) { buttons_actionPerformed(e); } }; browseButton.addActionListener(buttonListener); findButton.addActionListener(buttonListener); cancelButton.addActionListener(buttonListener); fileSearch = new FileSearch(this); panel.setBorder(BorderFactory.createEtchedBorder()); panel.setPreferredSize(new Dimension(490,460)); Container c = this.getContentPane(); c.setLayout(new GridBagLayout()); c.add(panel, new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.SOUTHEAST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0)); this.setResizable(false); } public void enableReplaceTextArea(boolean enable) { replaceTextArea.setEnabled(enable); replaceTextArea.setOpaque(enable); } public void finished() { if (replaceCheck.isSelected()) { // resultsScroll.getViewport().setViewPosition(new Point (0, resultsList.getHeight())); // JScrollBar verticalScrollBar = resultsScroll.getVerticalScrollBar(); // verticalScrollBar.setValue(verticalScrollBar.getVisibleAmount()); int last = fileSearch.getSearchResults().size() - 1; // Rectangle bounds = resultsList.getBounds(); // bounds.x = 0; // bounds.y = 0; // resultsList.paintImmediately(bounds); // resultsList.setSelectedIndex(last); resultsList.ensureIndexIsVisible(last); resultsList.ensureIndexIsVisible(last); } } public void setListData(Vector listData) { resultsList.setListData(listData); resultsList.ensureIndexIsVisible(listData.size()-1); } public void setResultsSummary(String text) { resultsSummary.setText(text); resultsSummary.repaint(); } public void appendResults(String results) { /* resultsTextArea.append(results); resultsTextArea.setCaretPosition(resultsTextArea.getText().length()); */ } private void buttons_actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.equals("Browse")) { FileChooserDialog fileChooser = null; String searchPath = (String)pathCombo.getSelectedItem(); if (searchPath != null && searchPath.length() > 0) { File currentDir = new File(searchPath); if (currentDir.exists()) fileChooser = new FileChooserDialog(currentDir.getAbsolutePath()); else fileChooser = new FileChooserDialog(); } else { fileChooser = new FileChooserDialog(); } fileChooser.setDialogTitle("Search Path"); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); fileChooser.setDialogType(JFileChooser.OPEN_DIALOG); int result = fileChooser.showDialog(this, "Select"); if (result == JFileChooser.CANCEL_OPTION) { return; } File file = fileChooser.getSelectedFile(); fileSearch.setSearchPath(file.getAbsolutePath()); pathCombo.setModel(new DefaultComboBoxModel(fileSearch.getPathValues())); } else if (command.equals("Close")) { dispose(); } else if (command.equals("Find")) { String searchText = findTextArea.getText(); if (searchText == null || searchText.length() == 0) { GUIUtilities.displayErrorMessage("You must enter search text"); return; } String replaceText = null; boolean replacingText = replaceCheck.isSelected(); if (replacingText) { replaceText = replaceTextArea.getText(); if (replaceText == null || replaceText.length() == 0) { GUIUtilities.displayErrorMessage("You must enter replacement text"); return; } //resultsTextArea.setText(""); //resultsScroll.getViewport().add(resultsTextArea); } else { resultsScroll.getViewport().add(resultsList); } String searchExtension = (String)fileTypesCombo.getSelectedItem(); if (searchExtension == null || searchExtension.length() == 0) { searchExtension = FileSearch.WILDCARD; } fileSearch.setSearchExtension(searchExtension); fileTypesCombo.setModel(new DefaultComboBoxModel(FileSearch.getTypesValues())); fileTypesCombo.setSelectedItem(searchExtension); String searchPath = (String)pathCombo.getSelectedItem(); if (searchPath == null || searchPath.length() == 0) { GUIUtilities.displayErrorMessage("You must select a search path"); return; } fileSearch.setSearchPath(searchPath); pathCombo.setModel(new DefaultComboBoxModel(FileSearch.getPathValues())); pathCombo.setSelectedItem(searchPath); File file = new File(searchPath); if (!file.exists()) { GUIUtilities.displayErrorMessage("The path or file entered does not exist"); return; } fileSearch.setSearchText(searchText); if (replaceText != null) fileSearch.setReplaceText(replaceText); boolean useRegex = regexCheck.isSelected(); fileSearch.setUsingRegex(useRegex); if (useRegex) { fileSearch.setFindWholeWords(false); } else { fileSearch.setFindWholeWords(wholeWordsCheck.isSelected()); } fileSearch.setReplacingText(replacingText); fileSearch.setSearchingSubdirs(searchSubdirsCheck.isSelected()); fileSearch.setMatchingCase(matchCaseCheck.isSelected()); fileSearch.doSearch(); } } class ReplacementOffsets { private int start; private int end; public ReplacementOffsets(int start, int end) { this.start = start; this.end = end; } public void setEnd(int end) { this.end = end; } public int getEnd() { return end; } public void setStart(int start) { this.start = start; } public int getStart() { return start; } } // class ReplacementOffsets }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -