Бета версия
This commit is contained in:
@ -13,13 +13,19 @@ import java.io.FileWriter;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URLDecoder;
|
||||
import java.security.CodeSource;
|
||||
import java.util.List;
|
||||
import java.util.Stack;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import org.ini4j.Ini;
|
||||
|
||||
@ -38,9 +44,23 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
initComponents();
|
||||
|
||||
setTitle("GettextDB");
|
||||
jTable1.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
|
||||
|
||||
try {
|
||||
File file = new File("settings.ini");
|
||||
String jarDir="";
|
||||
CodeSource codeSource = NewJFrame.class.getProtectionDomain().getCodeSource();
|
||||
File jarFile=null;
|
||||
try {
|
||||
jarFile = new File(codeSource.getLocation().toURI().getPath());
|
||||
} catch (URISyntaxException ex) {
|
||||
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
if(jarFile!=null){
|
||||
jarDir = jarFile.getParentFile().getPath()+"\\";
|
||||
}
|
||||
textArea1.append("JAR file path: " + jarDir + "\n");
|
||||
|
||||
File file = new File(jarDir + "settings.ini");
|
||||
if(file.exists()){
|
||||
Ini ini = new Ini(file);
|
||||
jTFDBURL.setText(ini.get("main", "db_url"));
|
||||
@ -55,7 +75,7 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
String extensions = ini.get("path"+i, "extensions");
|
||||
String pattern = ini.get("path"+i, "pattern");
|
||||
String type = ini.get("path"+i, "type");
|
||||
model.addRow(new Object[]{path, extensions, pattern, check, type });
|
||||
model.addRow(new Object[]{path, extensions, check, pattern, type });
|
||||
System.out.print(path);
|
||||
}
|
||||
}
|
||||
@ -89,10 +109,10 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
jLabel6 = new javax.swing.JLabel();
|
||||
jTFDBPassword = new javax.swing.JTextField();
|
||||
jButton5 = new javax.swing.JButton();
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
jBSaveSettings = new javax.swing.JButton();
|
||||
jButton1 = new javax.swing.JButton();
|
||||
textArea1 = new java.awt.TextArea();
|
||||
jButton3 = new javax.swing.JButton();
|
||||
jCheckBox1 = new javax.swing.JCheckBox();
|
||||
|
||||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
|
||||
@ -107,7 +127,7 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
|
||||
},
|
||||
new String [] {
|
||||
"Файл/Путь", "Расширения файлов", "Шаблон поиска", "Шаблон проверки", "ID типа слов"
|
||||
"Файл/Путь", "Расширения файлов", "Название функции (", "Шаблон проверки", "ID типа слов"
|
||||
}
|
||||
) {
|
||||
Class[] types = new Class [] {
|
||||
@ -128,24 +148,23 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
);
|
||||
jPanel2Layout.setVerticalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
jTabbedPane1.addTab("Настройки путей сканирования", jPanel2);
|
||||
|
||||
jLabel4.setText("Строка соединения");
|
||||
|
||||
jTFDBURL.setText("jdbc:postgresql://10.1.7.74:5432/pilot");
|
||||
|
||||
jLabel5.setText("Пользователь");
|
||||
|
||||
jTFDBUser.setText("translate");
|
||||
|
||||
jLabel6.setText("Пароль");
|
||||
|
||||
jTFDBPassword.setText("translate");
|
||||
|
||||
jButton5.setText("Проверить соединение");
|
||||
jButton5.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
jButton5ActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
|
||||
jPanel3.setLayout(jPanel3Layout);
|
||||
@ -186,11 +205,24 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
.addComponent(jLabel6))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jButton5)
|
||||
.addContainerGap(36, Short.MAX_VALUE))
|
||||
.addContainerGap(66, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
jTabbedPane1.addTab("Настройки соединения с базой", jPanel3);
|
||||
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
jPanel1Layout.setHorizontalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 915, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel1Layout.setVerticalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 179, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
jTabbedPane1.addTab("Настройки экспорта PO или XML файлов", jPanel1);
|
||||
|
||||
jBSaveSettings.setText("Сохранить настройки");
|
||||
jBSaveSettings.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
@ -242,13 +274,6 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
}
|
||||
});
|
||||
|
||||
jButton3.setText("Экспорт PO или XML файла");
|
||||
jButton3.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
jButton3ActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jCheckBox1.setText("Экспортировать в базу при сканировании");
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
|
||||
@ -260,8 +285,7 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(textArea1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 298, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGap(0, 0, Short.MAX_VALUE)
|
||||
.addComponent(jCheckBox1)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jButton1))
|
||||
@ -277,7 +301,6 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jButton1)
|
||||
.addComponent(jButton3)
|
||||
.addComponent(jCheckBox1))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
@ -285,7 +308,7 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void parse(String rootDir,String extensions,String pattern,String check,String type)
|
||||
private void parse(Connection conn, String rootDir, String extensions, String check, String pattern, String type)
|
||||
{
|
||||
// Просматриваем каталоги
|
||||
FileFinder finder = new FileFinder();
|
||||
@ -297,8 +320,7 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
//bufferedWriter.write("<?\n");
|
||||
|
||||
List searchRes = null;
|
||||
//searchRes = finder.findAll(rootDir,"(.*\\.as$)||(.*\\.mxml$)||(.*\\.xml$)");
|
||||
searchRes = finder.findAll(rootDir,"(.*\\.php$)||(.*\\.html$)||(.*\\.xml$)||(.*\\.js$)");
|
||||
searchRes = finder.findAll(rootDir,extensions); // (.*\\.as$)||(.*\\.mxml$)||(.*\\.xml$)
|
||||
|
||||
//выводим результаты
|
||||
for (int i = 0; i < searchRes.size(); i++)
|
||||
@ -325,14 +347,14 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
int to=0;
|
||||
while(true) //Если несколько значений в строке
|
||||
{
|
||||
int s=line.indexOf(pattern, from);
|
||||
int s=line.indexOf(check, from);
|
||||
if(s>=0)
|
||||
{
|
||||
from=s+pattern.length();
|
||||
from=s+check.length();
|
||||
to=line.indexOf(")", from);
|
||||
//int e=-1;
|
||||
//if(line.charAt(s+pattern.length()) == '"') { e=line.indexOf("\")", from); }
|
||||
//if(line.charAt(s+pattern.length()) == '\'') { e = line.indexOf("')", from); }
|
||||
//if(line.charAt(s+check.length()) == '"') { e=line.indexOf("\")", from); }
|
||||
//if(line.charAt(s+check.length()) == '\'') { e = line.indexOf("')", from); }
|
||||
if(to>=0)
|
||||
{
|
||||
String text = line.substring(from, to);
|
||||
@ -358,8 +380,18 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
}
|
||||
|
||||
if(text.length()>0){
|
||||
if(text.matches("[0-9|a-z|A-Z|_]+")){
|
||||
//if(text.matches("[0-9|a-z|A-Z|_]+")){
|
||||
if(text.matches(pattern)){
|
||||
textArea1.append(text+"\n");
|
||||
|
||||
//Обновляю в базе
|
||||
if(conn!=null){
|
||||
try (Statement stmt = conn.createStatement()) {
|
||||
ResultSet rs = stmt.executeQuery("select main._update_translation_identifier('"+text+"',"+type+");");
|
||||
} catch (SQLException e) {
|
||||
textArea1.append("Error write to DB\n");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
textArea1.append("NO VALUD = "+text+"\n");
|
||||
}
|
||||
@ -389,22 +421,25 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed
|
||||
{//GEN-HEADEREND:event_jButton1ActionPerformed
|
||||
//Подключаюсь к базе данных
|
||||
String url = jTFDBURL.getText(); //"jdbc:postgresql://10.1.7.74:5432/pilot";
|
||||
String user = jTFDBUser.getText(); //"translate";
|
||||
String password = jTFDBUser.getText(); //"translate";
|
||||
Connection conn = null;
|
||||
try {
|
||||
Class.forName("org.postgresql.Driver");
|
||||
conn = DriverManager.getConnection(url, user, password);
|
||||
System.out.println("Connected to the PostgreSQL server successfully.");
|
||||
}catch(ClassNotFoundException | SQLException e){
|
||||
System.out.println(e.getMessage());
|
||||
if(jCheckBox1.isSelected()){
|
||||
String url = jTFDBURL.getText(); //"jdbc:postgresql://10.1.7.74:5432/pilot";
|
||||
String user = jTFDBUser.getText(); //"translate";
|
||||
String password = jTFDBUser.getText(); //"translate";
|
||||
try {
|
||||
Class.forName("org.postgresql.Driver");
|
||||
conn = DriverManager.getConnection(url, user, password);
|
||||
System.out.println("Connected to the PostgreSQL server successfully.");
|
||||
}catch(ClassNotFoundException | SQLException e){
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
//Перебираю значения таблицы и пускаю на сканирование каждое поле
|
||||
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
|
||||
for(int row=0;row<model.getRowCount();row++){
|
||||
parse(
|
||||
conn,
|
||||
model.getValueAt(row,0).toString(),
|
||||
model.getValueAt(row,1).toString(),
|
||||
model.getValueAt(row,2).toString(),
|
||||
@ -418,25 +453,32 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
|
||||
private void jBSaveSettingsActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jBSaveSettingsActionPerformed
|
||||
{//GEN-HEADEREND:event_jBSaveSettingsActionPerformed
|
||||
jTable1.requestFocus();
|
||||
try
|
||||
{
|
||||
Ini ini = new Ini(new File("settings.ini"));
|
||||
ini.put("main", "db_url", jTFDBURL.getText());
|
||||
ini.put("main", "db_user", jTFDBUser.getText());
|
||||
ini.put("main", "db_password", jTFDBPassword.getText());
|
||||
|
||||
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
|
||||
for(int row=0;row<model.getRowCount();row++){
|
||||
ini.put("path"+row, "path", model.getValueAt(row,0).toString());
|
||||
ini.put("path"+row, "extensions", model.getValueAt(row,1).toString());
|
||||
ini.put("path"+row, "check", model.getValueAt(row,2).toString());
|
||||
ini.put("path"+row, "pattern", model.getValueAt(row,3).toString());
|
||||
|
||||
String type = model.getValueAt(row,4).toString();
|
||||
ini.put("path"+row, "type", type);
|
||||
}
|
||||
ini.store();
|
||||
|
||||
} catch (IOException ex)
|
||||
{
|
||||
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}//GEN-LAST:event_jBSaveSettingsActionPerformed
|
||||
|
||||
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
|
||||
|
||||
new AssemblyJFrame().setVisible(true);
|
||||
|
||||
}//GEN-LAST:event_jButton3ActionPerformed
|
||||
|
||||
private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
|
||||
|
||||
|
||||
@ -444,6 +486,29 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
|
||||
}//GEN-LAST:event_formWindowActivated
|
||||
|
||||
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
|
||||
|
||||
String text = "";
|
||||
//Подключаюсь к базе данных
|
||||
String url = jTFDBURL.getText(); //"jdbc:postgresql://10.1.7.74:5432/pilot";
|
||||
String user = jTFDBUser.getText(); //"translate";
|
||||
String password = jTFDBUser.getText(); //"translate";
|
||||
Connection conn = null;
|
||||
try {
|
||||
Class.forName("org.postgresql.Driver");
|
||||
conn = DriverManager.getConnection(url, user, password);
|
||||
}catch(ClassNotFoundException | SQLException e){
|
||||
text = e.getMessage();
|
||||
}
|
||||
if(conn==null){
|
||||
JOptionPane.showMessageDialog(null, "Ошибка: " +text);
|
||||
}else{
|
||||
JOptionPane.showMessageDialog(null, "Успех");
|
||||
}
|
||||
|
||||
|
||||
}//GEN-LAST:event_jButton5ActionPerformed
|
||||
|
||||
/**
|
||||
* @param args the command line arguments
|
||||
*/
|
||||
@ -491,12 +556,12 @@ public class NewJFrame extends javax.swing.JFrame
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton jBSaveSettings;
|
||||
private javax.swing.JButton jButton1;
|
||||
private javax.swing.JButton jButton3;
|
||||
private javax.swing.JButton jButton5;
|
||||
private javax.swing.JCheckBox jCheckBox1;
|
||||
private javax.swing.JLabel jLabel4;
|
||||
private javax.swing.JLabel jLabel5;
|
||||
private javax.swing.JLabel jLabel6;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JPanel jPanel2;
|
||||
private javax.swing.JPanel jPanel3;
|
||||
private javax.swing.JPanel jPanel4;
|
||||
|
||||
Reference in New Issue
Block a user