📄 alogin.java
字号:
orgComboChanged();
} // actionPerformed
/**************************************************************************
* Connection OK pressed
*/
private void connectionOK ()
{
log.info("");
//
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
confirmPanel.getOKButton().setEnabled(false);
m_connectionOK = tryConnection();
if (m_connectionOK)
{
// Verify Language & Load Msg
Language l = Language.getLoginLanguage();
Env.verifyLanguage (m_ctx, l);
Env.setContext(m_ctx, Env.LANGUAGE, l.getAD_Language());
Msg.getMsg(m_ctx, "0");
// Migration
MSystem system = MSystem.get(m_ctx);
if (system.isJustMigrated())
{
statusBar.setStatusLine("Running: After Migration ....", true);
ADialog.info (m_WindowNo, this, "AfterMigration");
Thread.yield();
DB.afterMigration(m_ctx);
}
// Set Defaults
printerField.setValue(Ini.getProperty(Ini.P_PRINTER));
// Change Tab to Default
loginTabPane.setSelectedIndex(1);
}
confirmPanel.getOKButton().setEnabled(true);
setCursor(Cursor.getDefaultCursor());
} // connectionOK
/**
* Change of tab <->
* @param e event
*/
public void stateChanged(ChangeEvent e)
{
if (loginTabPane.getSelectedIndex() == 2) // allow access to help
return;
if (!(String.valueOf(passwordField.getPassword()).equals(m_pwd)
&& userTextField.getText().equals(m_user)))
m_connectionOK = false;
//
if (m_connectionOK)
statusBar.setStatusLine(txt_LoggedIn);
else
{
statusBar.setStatusLine(txt_NotConnected, true);
loginTabPane.setSelectedIndex(0);
}
confirmPanel.getOKButton().requestFocus();
} // loginTabPane
/**************************************************************************
* Defaults OK pressed
* @return true if ok
*/
private boolean defaultsOK ()
{
log.info("");
KeyNamePair org = (KeyNamePair)orgCombo.getSelectedItem();
if (org == null)
return false;
// Set Properties
Ini.setProperty(Ini.P_CONNECTION, CConnection.get().toStringLong());
Ini.setProperty(Ini.P_LANGUAGE, (String)languageCombo.getSelectedItem());
String error = m_login.validateLogin(org);
if (error != null && error.length() > 0)
{
ADialog.info(m_WindowNo, this, error);
appExit();
return false;
}
// Load Properties and save Ini values
statusBar.setStatusLine("Loading Preferences");
String msg = m_login.loadPreferences (org,
(KeyNamePair)warehouseCombo.getSelectedItem(),
dateField.getTimestamp(), printerField.getDisplay());
if (msg.length() > 0)
ADialog.info(m_WindowNo, this, msg);
// Check Apps Server - DB Checked in Menu
checkVersion(); // exits if conflict
// Close - we are done
if (m_connectionOK)
this.dispose();
return m_connectionOK;
} // defaultsOK
/**************************************************************************
* Try to connect.
* - Get Connection
* - Compare User info
* @return true if connected
*/
private boolean tryConnection()
{
m_user = userTextField.getText();
m_pwd = new String (passwordField.getPassword());
// Establish connection
DB.setDBTarget(CConnection.get());
if (!DB.isConnected())
{
statusBar.setStatusLine(txt_NoDatabase, true);
hostField.setBackground(CompierePLAF.getFieldBackground_Error());
return false;
}
// Reference check
Ini.setProperty(Ini.P_COMPIERESYS, "Reference".equalsIgnoreCase(CConnection.get().getDbUid()));
// Get Roles
m_login = new Login(m_ctx);
KeyNamePair[] roles = m_login.getRoles(m_user, m_pwd);
if (roles == null || roles.length == 0)
{
statusBar.setStatusLine(txt_UserPwdError, true);
userTextField.setBackground(CompierePLAF.getFieldBackground_Error());
passwordField.setBackground(CompierePLAF.getFieldBackground_Error());
return false;
}
// Delete existing role items
m_comboActive = true;
if (roleCombo.getItemCount() > 0)
roleCombo.removeAllItems();
// Initial role
KeyNamePair iniValue = null;
String iniDefault = Ini.getProperty(Ini.P_ROLE);
// fill roles
for (int i = 0; i < roles.length; i++)
{
roleCombo.addItem(roles[i]);
if (roles[i].getName().equals(iniDefault))
iniValue = roles[i];
}
if (iniValue != null)
roleCombo.setSelectedItem(iniValue);
userTextField.setBackground(CompierePLAF.getFieldBackground_Normal());
passwordField.setBackground(CompierePLAF.getFieldBackground_Normal());
//
statusBar.setStatusLine(txt_LoggedIn);
m_comboActive = false;
roleComboChanged();
return true;
} // tryConnection
/**
* Role changed - fill Client List
*/
private void roleComboChanged ()
{
KeyNamePair role = (KeyNamePair)roleCombo.getSelectedItem();
if (role == null || m_comboActive)
return;
log.config(": " + role);
m_comboActive = true;
//
KeyNamePair[] clients = m_login.getClients(role);
// delete existing client/org items
if (clientCombo.getItemCount() > 0)
clientCombo.removeAllItems();
if (orgCombo.getItemCount() > 0)
orgCombo.removeAllItems();
// No Clients
if (clients == null || clients.length == 0)
{
statusBar.setStatusLine(txt_RoleError, true);
m_comboActive = false;
return;
}
// initial client
KeyNamePair iniValue = null;
String iniDefault = Ini.getProperty(Ini.P_CLIENT);
// fill clients
for (int i = 0; i < clients.length; i++)
{
clientCombo.addItem(clients[i]);
if (clients[i].getName().equals(iniDefault))
iniValue = clients[i];
}
// fini
if (iniValue != null)
clientCombo.setSelectedItem(iniValue);
//
m_comboActive = false;
clientComboChanged();
} // roleComboChanged
/**
* Client changed - fill Org & Warehouse List
*/
private void clientComboChanged()
{
KeyNamePair client = (KeyNamePair)clientCombo.getSelectedItem();
if (client == null || m_comboActive)
return;
log.config(": " + client);
m_comboActive = true;
//
KeyNamePair[] orgs = m_login.getOrgs(client);
// delete existing cleint items
if (orgCombo.getItemCount() > 0)
orgCombo.removeAllItems();
// No Orgs
if (orgs == null || orgs.length == 0)
{
statusBar.setStatusLine(txt_RoleError, true);
m_comboActive = false;
return;
}
// initial client
KeyNamePair orgValue = null;
KeyNamePair orgValue2 = null;
String iniDefault = Ini.getProperty(Ini.P_ORG);
// fill orgs
for (int i = 0; i < orgs.length; i++)
{
orgCombo.addItem(orgs[i]);
if (orgs[i].getName().equals(iniDefault))
orgValue = orgs[i];
if (orgValue2 == null && orgs[i].getKey() != 0)
orgValue2 = orgs[i]; // first non-0 org
}
// Non-0 Org exists and last login was with 0
if (orgValue2 != null && orgValue != null && orgValue.getKey() == 0)
orgValue = orgValue2;
// Last Org
if (orgValue != null)
orgCombo.setSelectedItem(orgValue);
// Get first Org
else
orgValue = (KeyNamePair)orgCombo.getSelectedItem();
//
m_comboActive = false;
orgComboChanged();
} // clientComboChanged
/**
* Org changed - fill Warehouse List
*/
private void orgComboChanged()
{
KeyNamePair org = (KeyNamePair)orgCombo.getSelectedItem();
if (org == null || m_comboActive)
return;
log.config(": " + org);
m_comboActive = true;
//
KeyNamePair[] whs = m_login.getWarehouses(org);
// Delete existing warehouse items
if (warehouseCombo.getItemCount() > 0)
warehouseCombo.removeAllItems();
// fill warehouses
if (whs != null)
{
// initial warehouse
KeyNamePair iniValue = null;
String iniDefault = Ini.getProperty(Ini.P_WAREHOUSE);
for (int i = 0; i < whs.length; i++)
{
warehouseCombo.addItem(whs[i]);
if (whs[i].getName().equals(iniDefault))
iniValue = whs[i];
}
if (iniValue != null)
warehouseCombo.setSelectedItem(iniValue);
}
m_comboActive = false;
} // orgComboChanged
/**
* Check Version
* @return true if version is OK and
* false if version could not be checked or is not the same
* @see AEnv#getServerVersion
*/
private boolean checkVersion()
{
boolean retValue = false;
try
{
String version = AEnv.getServerVersion();
if (Compiere.DATE_VERSION.equals(version))
{
log.config("Server = Client - " + version);
retValue = true;
}
else if (version != null)
{
StringBuffer msg = new StringBuffer (">>\n");
msg.append(res.getString("VersionConflict")).append("\n")
.append(res.getString("VersionInfo")).append("\n");
msg.append(version == null ? "null" : version).append(" <> ")
.append(Compiere.DATE_VERSION).append("\n");
msg.append(res.getString("PleaseUpgrade")).append("\n<<");
JOptionPane.showMessageDialog(null, msg.toString(),
Compiere.getName() + " - " + res.getString("VersionConflict"),
JOptionPane.ERROR_MESSAGE);
AEnv.exit(1);
}
}
catch (Exception e)
{
log.severe("Contact Server failed - "
+ e.getClass().toString() + ": " + e.getMessage());
}
return retValue;
} // checkVersion
/**************************************************************************
* Language issues
*/
private String txt_Connected, txt_NotConnected, txt_NoDatabase,
txt_UserPwdError, txt_RoleError, txt_LoggedIn;
/**
* Change Language
*/
private void languageComboChanged ()
{
String langName = (String)languageCombo.getSelectedItem();
// log.info( "Language: " + langName);
Language language = Language.getLanguage(langName);
Language.setLoginLanguage(language);
Env.setContext(m_ctx, Env.LANGUAGE, language.getAD_Language());
// Locales
Locale loc = language.getLocale();
Locale.setDefault(loc);
this.setLocale(loc);
res = ResourceBundle.getBundle(RESOURCE, loc);
//
this.setTitle(res.getString("Login"));
hostLabel.setText(res.getString("Host"));
userLabel.setText(res.getString("User"));
userLabel.setToolTipText(res.getString("EnterUser"));
passwordLabel.setText(res.getString("Password"));
passwordLabel.setToolTipText(res.getString("EnterPassword"));
languageLabel.setText(res.getString("Language"));
languageLabel.setToolTipText(res.getString("SelectLanguage"));
//
roleLabel.setText(res.getString("Role"));
clientLabel.setText(res.getString("Client"));
orgLabel.setText(res.getString("Organization"));
dateLabel.setText(res.getString("Date"));
warehouseLabel.setText(res.getString("Warehouse"));
printerLabel.setText(res.getString("Printer"));
defaultPanel.setToolTipText(res.getString("Defaults"));
connectionPanel.setToolTipText(res.getString("Connection"));
//
txt_Connected = res.getString("Connected");
txt_NotConnected = res.getString("NotConnected");
txt_NoDatabase = res.getString("DatabaseNotFound");
txt_UserPwdError = res.getString("UserPwdError");
txt_RoleError = res.getString("RoleNotFound");
txt_LoggedIn = res.getString("Authorized");
//
loginTabPane.setTitleAt(0, res.getString("Connection"));
loginTabPane.setTitleAt(1, res.getString("Defaults"));
confirmPanel.getOKButton().setToolTipText(res.getString("Ok"));
confirmPanel.getCancelButton().setToolTipText(res.getString("Cancel"));
// DateField with new format
dateField.setFormat();
dateField.setValue(new Timestamp(System.currentTimeMillis()));
//
if (m_connectionOK)
statusBar.setStatusLine(txt_LoggedIn);
else
statusBar.setStatusLine(txt_NotConnected, true);
} // languageCombo_actionPerformed
} // ALogin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -