gistfile1.txt package cn.huawei.com.CompressedSeacher.util;import cn.huawei.com.CompressedSeacher.view.StartUp;import java.awt.Color;import java.awt.Component;import java.awt.Dimension;import java.awt.Point;import java.io.File;import java.i
package cn.huawei.com.CompressedSeacher.util;
import cn.huawei.com.CompressedSeacher.view.StartUp;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Point;
import java.io.File;
import java.io.IOException;
import java.util.Enumeration;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumn;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
/**
* **
*
* @author l00358914
*/
public class CommonUtil {
private static CommonUtil instance = new CommonUtil();
public static final int filesPerThread = 30;
public static final String[] NONE_CLASS_extensions = {".java", ".xml", ".txt", ".TXT", ".properties", ".MF", ".wsdl", ".WSDL", ".mf", ".html", "HTML", ".dtd", ".DTD", ".xsd", ".XSD", ".jsp", ".JSP", ".sql", ".SQL", ".c", ".h", ".C", ".H"};
public static CommonUtil getInstance() {
return instance;
}
public static boolean isOneOfTheFileType(String value) {
for (int a = 0; a < NONE_CLASS_extensions.length; a++) {
if (value.trim().endsWith(NONE_CLASS_extensions[a])) {
return true;
}
continue;
}
return false;
}
/**
* **
*
* @param width
* @param height
* @return
*/
public Point returnCenterPoint(int width, int height) {
// Dimension size = new Dimension(width, height);
Dimension d = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
int x = 0;
int y = 0;
x = (int) ((d.getWidth() - width) / 2);
y = (int) (d.getHeight() - height) / 2;
return new Point(x, y);
}
/**
* **
*
* @param com
* @return
*/
public Point returnCenterPoint_JComponent(JComponent com) {
Dimension d = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
int x = 0;
int y = 0;
x = (int) ((d.getWidth() - com.getWidth()) / 2);
y = (int) (d.getHeight() - com.getHeight()) / 2;
return new Point(x, y);
}
/**
* **
* 根据表格列的内容自动调整列宽度
*
* @param myTable
*/
public static void fitTableColumns(JTable myTable) {
myTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JTableHeader header = myTable.getTableHeader();
int rowCount = myTable.getRowCount();
Enumeration columns = myTable.getColumnModel().getColumns();
while (columns.hasMoreElements()) {
TableColumn column = (TableColumn) columns.nextElement();
int col = header.getColumnModel().getColumnIndex(column.getIdentifier());
int width = (int) header.getDefaultRenderer().getTableCellRendererComponent(myTable, column.getIdentifier(), false, false, -1, col).getPreferredSize().getWidth();
for (int row = 0; row < rowCount; row++) {
int preferedWidth = (int) myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable, myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth();
width = Math.max(width, preferedWidth);
}
header.setResizingColumn(column); // 此行很重要
column.setWidth(width + myTable.getIntercellSpacing().width);
}
}
public static String formatWindowsPath(String path) {
return path.replaceAll("/", File.separator);
}
public static void decompileClassFolder(String scr, String clas) {
String command = "cmd /k start script/jad.exe -f -ff -o -r -safe -stat -sjava -d" + formatWindowsPath(scr) + " " + formatWindowsPath(clas) + "**/*.class";
// System.out.println("Windows :Invoking " + command);
try {
Runtime.getRuntime().exec(command);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* **
*
* @param path
*/
public static void decompileSingleClassFile(String path) {
String command = "cmd /k start script/jad.exe -f -ff -o -r -safe -sjava -dD:\\decompileTest\\lukeall-0.9.9Lucene-Index-Toolbox-Demo D:\\decompileTest\\lukeall-0.9.9Lucene-Index-Toolbox.jar\\org\\jets3t\\service\\Jets3tProperties.class";
// System.out.println("Windows :Invoking " + command);
try {
Runtime.getRuntime().exec(command);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* **
*
* @param Table
*/
public static void setTableRowColor(JTable Table, final int index) {
try {
DefaultTableCellRenderer defaultcellrender = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelectd, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table, value, isSelectd, hasFocus, row, column);
Object obj = table.getValueAt(row, index);
String temp = obj.toString();
if (temp.endsWith(".java")) {
cell.setBackground(Color.green);
return cell;
}
if (temp.endsWith(".class")) {
cell.setBackground(Color.PINK);
return cell;
}
if (isOneOfTheFileType(temp)) {
// if (temp.endsWith(".txt") || temp.endsWith(".xml") || temp.endsWith(".properties") || temp.endsWith(".wsdl")||temp.endsWith(".html")||temp.endsWith(".dtd")||temp.endsWith(".xsd")||temp.endsWith(".jsp")) {
cell.setBackground(Color.yellow);
return cell;
} else {
cell.setBackground(Color.ORANGE);
return cell;
}
}
};
for (int i = 0; i < Table.getColumnCount(); i++) {
Table.getColumnModel().getColumn(i).setCellRenderer(defaultcellrender);
}
} catch (Exception E) {
E.printStackTrace();
}
}
/**
* **
*
* @param Table
*/
public static void setTableRowColor_basedOnIndex(JTable Table) {
try {
DefaultTableCellRenderer defaultcellrender = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelectd, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table, value, isSelectd, hasFocus, row, column);
if (row % 2 == 0) {
cell.setBackground(Color.pink);
return cell;
} else {
cell.setBackground(Color.ORANGE);
return cell;
}
}
};
for (int i = 0; i < Table.getColumnCount(); i++) {
Table.getColumnModel().getColumn(i).setCellRenderer(defaultcellrender);
}
} catch (Exception E) {
E.printStackTrace();
}
}
/**
* **
*
* @param textarea
*/
public static void goToFirstLine(JTextArea textarea) {
textarea.setCaretPosition(0);
textarea.requestFocus();
}
/**
* **
*
* @param textpane
*/
public static void goToFirstLine(JTextPane textpane) {
textpane.setCaretPosition(0);
textpane.requestFocus();
}
/**
* **
*
* @param textarea
*/
public static void goToLastLine(JTextArea textarea) {
textarea.selectAll();
textarea.setCaretPosition(textarea.getText()
.length());
textarea.requestFocus();
}
/**
* **
*
* @param inputJarFileName
* @return
*/
public static String removeBlankCharForJarFileName(String inputJarFileName) {
return inputJarFileName.replaceAll("\\s", "-");
}
/**
* **
*
* @param path
* @return
*/
public static boolean isFolderEmptyOrNotExist(String path) {
File temp = new File(path);
// if (temp.exists() && temp.getTotalSpace() > 0) {
if (temp.exists()) {
return false;
} else {
return true;
}
}
/**
* **
*
* @param textpane
*/
public static void goToLastLine(JTextPane textpane) {
textpane.selectAll();
textpane.setCaretPosition(textpane.getSelectedText()
.length());
textpane.requestFocus();
}
/**
* **
*
* @param area
* @param keyword
*/
public void hightlineKeyword(JTextArea area, String keyword) {
String content = area.getText();
int index = content.indexOf(keyword);
if (index != -1) {
area.getHighlighter().removeAllHighlights();
try {
while (index != -1 & !keyword.equals("")) {
area.getHighlighter().addHighlight(index, index + keyword.length(), DefaultHighlighter.DefaultPainter);
index = content.indexOf(keyword, index + keyword.length());
}
} catch (BadLocationException ex) {
ex.printStackTrace();
}
} else {
// area.getHighlighter().removeAllHighlights();
JOptionPane.showMessageDialog(StartUp.getInstance(), "没有找到关键字:" + keyword);
}
}
/**
* **
*
* @param total
* @param filesPerThread
* @return
*/
public static int[] getSplittedTableSets(int total) {
//每一个线程处理filesPerThread个文件
int a = total % filesPerThread;//取余数
int b = total / filesPerThread;//去除数
System.out.println("除数:" + b + " 余数:" + a);
int[] intArray = {b, a};
return intArray;
}
// 45 0 45 -->0 45
// 59 0 49 50 59 -->1 9
// 112 0 49 50 99 100 112 -->2 12
// 167 0 49 50 99 100 149 150 167 -->3 17
// 223 0 49 50 99 100 149 150 199 200 223 -->4 23
public static void showSegments(int toal) {
int[] sets = CommonUtil.getInstance().getSplittedTableSets(toal);
int startindex = 0;
int endindex = 0;
for (int a = 0; a < (sets[0] + 1); a++) {
startindex = a * CommonUtil.filesPerThread;//这个是固定的index*50
if (sets[0] == 0) {//如果只有一个结果集,而且是头一个
endindex = sets[1];
System.out.println("startindex=" + startindex + " endindex=" + endindex);
} else if (sets[0] > 0) {//more than one sets
if (a == 0) {//the first one
endindex = (a + 1) * CommonUtil.filesPerThread - 1;
System.out.println("startindex=" + startindex + " endindex=" + endindex);
} else if (a == sets[0]) {//the last one
endindex = sets[0] * CommonUtil.filesPerThread + sets[1];
System.out.println("startindex=" + startindex + " endindex=" + endindex);
} else {
endindex = (a + 1) * CommonUtil.filesPerThread - 1;
System.out.println("startindex=" + startindex + " endindex=" + endindex);
}
}
}
}
public static void main(String[] args) {
// CommonUtil.getInstance().getSplittedTableSets(48);
CommonUtil.getInstance().showSegments(435);
}
}
