Переделка под DB

This commit is contained in:
2023-04-21 14:01:14 +06:00
parent c119086ea4
commit 9252e2e06a
11 changed files with 1086 additions and 378 deletions

View File

@ -17,6 +17,11 @@ 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.SQLException;
import javax.swing.table.DefaultTableModel;
import org.ini4j.Ini;
/**
*
@ -60,45 +65,35 @@ public class NewJFrame extends javax.swing.JFrame
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
textArea1 = new java.awt.TextArea();
textArea2 = new java.awt.TextArea();
jButton2 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
jButton3 = new javax.swing.JButton();
jTabbedPane1 = new javax.swing.JTabbedPane();
jPanel1 = new javax.swing.JPanel();
jTextField1 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jButton4 = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jPanel3 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
jTFDBURL = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jTFDBUser = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jTFDBPassword = new javax.swing.JTextField();
jButton5 = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
textArea1 = new java.awt.TextArea();
jPanel4 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jButton3 = new javax.swing.JButton();
textArea2 = new java.awt.TextArea();
jBSaveSettings = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("Сканировать");
jButton1.setName(""); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabel1.setText("Перебираем файлы и создаём единый PHP файлик с _(“слово”).");
jButton2.setText("Сохранить настройки");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel2.setText("Пути для сканирования");
jButton3.setText("Экспорт");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
@ -139,18 +134,154 @@ public class NewJFrame extends javax.swing.JFrame
jTabbedPane1.addTab("English", jPanel1);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Файл/Путь", "Расширения файлов", "Шаблон поиска", "Шаблон проверки"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 772, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 772, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 338, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 338, Short.MAX_VALUE)
);
jTabbedPane1.addTab("Русский", jPanel2);
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("Проверить соединение");
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTFDBPassword)
.addComponent(jTFDBUser)
.addComponent(jTFDBURL, javax.swing.GroupLayout.DEFAULT_SIZE, 647, Short.MAX_VALUE)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jButton5)))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTFDBURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTFDBUser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTFDBPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton5)
.addContainerGap(222, Short.MAX_VALUE))
);
jTabbedPane1.addTab("Настройки соединения с базой", jPanel3);
jButton1.setText("Сканировать");
jButton1.setName(""); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabel1.setText("Перебираем файлы и создаём единый PHP файлик с _(“слово”).");
jLabel2.setText("Пути для сканирования");
jButton3.setText("Экспорт PO или XML файла");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jBSaveSettings.setText("Сохранить настройки");
jBSaveSettings.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBSaveSettingsActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jBSaveSettings))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel4Layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(202, 202, 202)
.addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(textArea2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jButton3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textArea2, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBSaveSettings)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
@ -159,38 +290,22 @@ public class NewJFrame extends javax.swing.JFrame
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textArea2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGap(0, 0, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addComponent(textArea1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jButton1))
.addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jButton2))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jButton3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(textArea2, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 71, Short.MAX_VALUE)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE)
@ -216,7 +331,8 @@ public class NewJFrame extends javax.swing.JFrame
bufferedWriter.write("<?\n");
List searchRes = null;
searchRes = finder.findAll(rootDir,"(.*\\.as$)||(.*\\.mxml$)||(.*\\.xml$)");
//searchRes = finder.findAll(rootDir,"(.*\\.as$)||(.*\\.mxml$)||(.*\\.xml$)");
searchRes = finder.findAll(rootDir,"(.*\\.php$)||(.*\\.html$)||(.*\\.xml$)||(.*\\.js$)");
//выводим результаты
for (int i = 0; i < searchRes.size(); i++)
@ -242,20 +358,22 @@ public class NewJFrame extends javax.swing.JFrame
int from=0;
while(true) //Если несколько значений в строке
{
int s=line.indexOf("_(", from);
if(s>=0)
{
from=s+2;
int e=-1;
if(line.charAt(s+2) == '"') { e=line.indexOf("\")", from); }
if(line.charAt(s+2) == '\'') { e = line.indexOf("')", from); }
if(e>=0)
{
textArea1.append(line.substring(s, e + 2)+";\n");
bufferedWriter.write(" "+line.substring(s, e + 2)+";\n");
from=e+2;
}
}else { break; }
String pattern="trt(";
//int s=line.indexOf("_(", from);
int s=line.indexOf(pattern, from);
if(s>=0)
{
from=s+pattern.length();
int e=-1;
if(line.charAt(s+pattern.length()) == '"') { e=line.indexOf("\")", from); }
if(line.charAt(s+pattern.length()) == '\'') { e = line.indexOf("')", from); }
if(e>=0)
{
textArea1.append(line.substring(s, e + 2)+";\n");
bufferedWriter.write(" "+line.substring(s, e + 2)+";\n");
from=e+2;
}
}else { break; }
}
}
bufferedReader.close();
@ -275,49 +393,69 @@ public class NewJFrame extends javax.swing.JFrame
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed
{//GEN-HEADEREND:event_jButton1ActionPerformed
BufferedReader reader = new BufferedReader(new StringReader(textArea2.getText()));
String line1;
String line2;
try
{
while (true)
{
line1 = reader.readLine();
line2 = reader.readLine();
if(line1==null || line2 == null) break;
//Парсим файлы и выписываем идентификаторы для перевода
parse(line1, line2); //Перезаписывает файл
}
} catch (IOException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
//Подключаюсь к базе данных
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());
}
BufferedReader reader = new BufferedReader(new StringReader(textArea2.getText()));
String line1;
String line2;
try
{
while (true)
{
line1 = reader.readLine();
line2 = reader.readLine();
if(line1==null || line2 == null) break;
//Парсим файлы и выписываем идентификаторы для перевода
parse(line1, line2); //Перезаписывает файл
}
} catch (IOException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton2ActionPerformed
{//GEN-HEADEREND:event_jButton2ActionPerformed
FileWriter fileWriter = null;
try
{
fileWriter = new FileWriter("settings.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(textArea2.getText());
bufferedWriter.close();
} catch (IOException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
} finally
{
try
{
fileWriter.close();
} catch (IOException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}//GEN-LAST:event_jButton2ActionPerformed
private void jBSaveSettingsActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jBSaveSettingsActionPerformed
{//GEN-HEADEREND:event_jBSaveSettingsActionPerformed
FileWriter fileWriter = null;
try
{
Ini ini = new Ini(new File("O:\\temp\\settings.ini"));
ini.put("main", "db_url", jTFDBURL.getText());
ini.put("main", "db_user", jTFDBUser.getText());
ini.put("main", "db_password", jTFDBPassword.getText());
ini.store();
fileWriter = new FileWriter("settings.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(textArea2.getText());
bufferedWriter.close();
} catch (IOException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
} finally
{
try
{
fileWriter.close();
} 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
@ -329,6 +467,35 @@ public class NewJFrame extends javax.swing.JFrame
// TODO add your handling code here:
}//GEN-LAST:event_jButton4ActionPerformed
private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
try {
File file = new File("O:\\temp\\settings.ini");
if(file.exists()){
Ini ini = new Ini(file);
jTFDBURL.setText(ini.get("main", "db_url"));
jTFDBUser.setText(ini.get("main", "db_user"));
jTFDBPassword.setText(ini.get("main", "db_password"));
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
for(int i=0;i<100;i++){
if(ini.get("path"+i)!=null){
String path = ini.get("path"+i, "path");
String check = ini.get("path"+i, "check");
String extensions = ini.get("path"+i, "extensions");
model.addRow(new Object[]{path, extensions, check});
System.out.print(path);
}
}
//ini.store();
}
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_formWindowActivated
/**
* @param args the command line arguments
*/
@ -374,16 +541,27 @@ 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 jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
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;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField jTFDBPassword;
private javax.swing.JTextField jTFDBURL;
private javax.swing.JTextField jTFDBUser;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private java.awt.TextArea textArea1;
private java.awt.TextArea textArea2;