// uniCenta oPOS - Touch Friendly Point Of Sale // Copyright (c) 2009-2013 uniCenta & previous Openbravo POS works // http://www.unicenta.net/unicentaopos // // This file is part of uniCenta oPOS // // uniCenta oPOS is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // uniCenta oPOS is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with uniCenta oPOS. If not, see <http://www.gnu.org/licenses/>. package com.openbravo.pos.config; import com.openbravo.data.user.DirtyManager; import com.openbravo.pos.forms.AppConfig; import com.openbravo.pos.forms.AppLocal; import com.openbravo.pos.util.AltEncrypter; import java.awt.Component; /** * * @author adrianromero */ public class JPanelConfigERP extends javax.swing.JPanel implements PanelConfig { private DirtyManager dirty = new DirtyManager(); /** Creates new form JPanelConfigERP */ public JPanelConfigERP() { initComponents(); jTextField1.getDocument().addDocumentListener(dirty); jTextField2.getDocument().addDocumentListener(dirty); jtxtId.getDocument().addDocumentListener(dirty); jtxtName.getDocument().addDocumentListener(dirty); jtxtPassword.getDocument().addDocumentListener(dirty); jtxtUrl.getDocument().addDocumentListener(dirty); } public boolean hasChanged() { return dirty.isDirty(); } public Component getConfigComponent() { return this; } public void loadProperties(AppConfig config) { jtxtUrl.setText(config.getProperty("erp.URL")); jtxtId.setText(config.getProperty("erp.id")); jTextField2.setText(config.getProperty("erp.pos")); jTextField1.setText(config.getProperty("erp.org")); String sERPUser = config.getProperty("erp.user"); String sERPPassword = config.getProperty("erp.password"); if (sERPUser != null && sERPPassword != null && sERPPassword.startsWith("crypt:")) { // La clave esta encriptada. AltEncrypter cypher = new AltEncrypter("cypherkey" + sERPUser); sERPPassword = cypher.decrypt(sERPPassword.substring(6)); } jtxtName.setText(sERPUser); jtxtPassword.setText(sERPPassword); dirty.setDirty(false); } public void saveProperties(AppConfig config) { config.setProperty("erp.URL", jtxtUrl.getText()); config.setProperty("erp.id", jtxtId.getText()); config.setProperty("erp.pos", jTextField2.getText()); config.setProperty("erp.org", jTextField1.getText()); config.setProperty("erp.user", jtxtName.getText()); AltEncrypter cypher = new AltEncrypter("cypherkey" + jtxtName.getText()); config.setProperty("erp.password", "crypt:" + cypher.encrypt(new String(jtxtPassword.getPassword()))); dirty.setDirty(false); } /** 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() { jPanel1 = new javax.swing.JPanel(); jlabelUrl = new javax.swing.JLabel(); jtxtUrl = new javax.swing.JTextField(); jLabelId = new javax.swing.JLabel(); jtxtId = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jTextField2 = new javax.swing.JTextField(); jLabelName = new javax.swing.JLabel(); jtxtName = new javax.swing.JTextField(); jLabelProperties = new javax.swing.JLabel(); jtxtPassword = new javax.swing.JPasswordField(); setLayout(null); jlabelUrl.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jlabelUrl.setText(AppLocal.getIntString("label.erpurl")); // NOI18N jtxtUrl.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabelId.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabelId.setText(AppLocal.getIntString("label.erpid")); // NOI18N jtxtId.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel1.setText(AppLocal.getIntString("label.erporg")); // NOI18N jTextField1.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel2.setText(AppLocal.getIntString("label.erppos")); // NOI18N jTextField2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabelName.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabelName.setText(AppLocal.getIntString("label.erpuser")); // NOI18N jtxtName.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabelProperties.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabelProperties.setText(AppLocal.getIntString("label.erppassword")); // NOI18N jtxtPassword.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jlabelUrl, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jtxtUrl, javax.swing.GroupLayout.PREFERRED_SIZE, 380, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabelId, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jtxtId, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabelName, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jtxtName, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabelProperties, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jtxtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(217, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jlabelUrl, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtUrl, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelId, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtId, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelName, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtName, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelProperties, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jtxtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(16, Short.MAX_VALUE)) ); add(jPanel1); jPanel1.setBounds(10, 11, 741, 207); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabelId; private javax.swing.JLabel jLabelName; private javax.swing.JLabel jLabelProperties; private javax.swing.JPanel jPanel1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JLabel jlabelUrl; private javax.swing.JTextField jtxtId; private javax.swing.JTextField jtxtName; private javax.swing.JPasswordField jtxtPassword; private javax.swing.JTextField jtxtUrl; // End of variables declaration//GEN-END:variables }