📄 vpattributedialog.java
字号:
label.setLabelFor(editor);
centerPanel.add(editor, null);
if (readOnly)
editor.setEnabled(false);
else
m_editors.add (editor);
}
else // Text Field
{
VString editor = new VString (attribute.getName(), attribute.isMandatory(),
false, true, 20, INSTANCE_VALUE_LENGTH, null, null);
if (instance != null)
editor.setText(instance.getValue());
label.setLabelFor(editor);
centerPanel.add(editor, null);
if (readOnly)
editor.setEnabled(false);
else
m_editors.add (editor);
}
} // addAttributeLine
/**
* dispose
*/
public void dispose()
{
removeAll();
Env.clearWinContext(m_WindowNo);
super.dispose();
} // dispose
/**
* ActionListener
* @param e event
*/
public void actionPerformed(ActionEvent e)
{
// Select Instance
if (e.getSource() == bSelect)
{
if (cmd_select())
dispose();
}
// New/Edit
else if (e.getSource() == cbNewEdit)
{
cmd_newEdit();
}
// Select Lot from existing
else if (e.getSource() == fieldLot)
{
KeyNamePair pp = (KeyNamePair)fieldLot.getSelectedItem();
if (pp != null && pp.getKey() != -1)
{
fieldLotString.setText(pp.getName());
fieldLotString.setEditable(false);
m_masi.setM_Lot_ID(pp.getKey());
}
else
{
fieldLotString.setEditable(true);
m_masi.setM_Lot_ID(0);
}
}
// Create New Lot
else if (e.getSource() == bLot)
{
KeyNamePair pp = m_masi.createLot(m_M_Product_ID);
if (pp != null)
{
fieldLot.addItem(pp);
fieldLot.setSelectedItem(pp);
}
}
// Create New SerNo
else if (e.getSource() == bSerNo)
{
fieldSerNo.setText(m_masi.getSerNo(true));
}
// OK
else if (e.getActionCommand().equals(ConfirmPanel.A_OK))
{
if (saveSelection())
dispose();
}
// Cancel
else if (e.getActionCommand().equals(ConfirmPanel.A_CANCEL))
{
m_changed = false;
dispose();
}
// Zoom M_Lot
else if (e.getSource() == mZoom)
{
cmd_zoom();
}
else
log.log(Level.SEVERE, "not found - " + e);
} // actionPerformed
/**
* Instance Selection Button
* @return true if selected
*/
private boolean cmd_select()
{
log.config("");
int M_Warehouse_ID = Env.getContextAsInt(Env.getCtx(), m_WindowNoParent, "M_Warehouse_ID");
String title = "";
// Get Text
String sql = "SELECT p.Name, w.Name FROM M_Product p, M_Warehouse w "
+ "WHERE p.M_Product_ID=? AND w.M_Warehouse_ID=?";
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, null);
pstmt.setInt(1, m_M_Product_ID);
pstmt.setInt(2, M_Warehouse_ID);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
title = rs.getString(1) + " - " + rs.getString(2);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, sql, e);
}
try
{
if (pstmt != null)
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
pstmt = null;
}
//
PAttributeInstance pai = new PAttributeInstance(this, title,
M_Warehouse_ID, 0, m_M_Product_ID, m_C_BPartner_ID);
if (pai.getM_AttributeSetInstance_ID() != -1)
{
m_M_AttributeSetInstance_ID = pai.getM_AttributeSetInstance_ID();
m_M_AttributeSetInstanceName = pai.getM_AttributeSetInstanceName();
m_changed = true;
return true;
}
return false;
} // cmd_select
/**
* Instance New/Edit
*/
private void cmd_newEdit()
{
boolean rw = cbNewEdit.isSelected();
log.config("R/W=" + rw + " " + m_masi);
//
fieldLotString.setEditable(rw && m_masi.getM_Lot_ID()==0);
if (fieldLot != null)
fieldLot.setReadWrite(rw);
bLot.setReadWrite(rw);
fieldSerNo.setReadWrite(rw);
bSerNo.setReadWrite(rw);
fieldGuaranteeDate.setReadWrite(rw);
//
for (int i = 0; i < m_editors.size(); i++)
{
CEditor editor = (CEditor)m_editors.get(i);
editor.setReadWrite(rw);
}
} // cmd_newEdit
/**
* Zoom M_Lot
*/
private void cmd_zoom()
{
int M_Lot_ID = 0;
KeyNamePair pp = (KeyNamePair)fieldLot.getSelectedItem();
if (pp != null)
M_Lot_ID = pp.getKey();
MQuery zoomQuery = new MQuery("M_Lot");
zoomQuery.addRestriction("M_Lot_ID", MQuery.EQUAL, M_Lot_ID);
log.info(zoomQuery.toString());
//
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
//
int AD_Window_ID = 257; // Lot
AWindow frame = new AWindow();
if (frame.initWindow(AD_Window_ID, zoomQuery))
{
this.setVisible(false);
this.setModal (false); // otherwise blocked
this.setVisible(true);
AEnv.showScreen(frame, SwingConstants.EAST);
}
// async window - not able to get feedback
frame = null;
//
setCursor(Cursor.getDefaultCursor());
} // cmd_zoom
/**
* Save Selection
* @return true if saved
*/
private boolean saveSelection()
{
log.info("saveSelection");
MAttributeSet as = m_masi.getMAttributeSet();
if (as == null)
return true;
//
m_changed = false;
String mandatory = "";
if (!m_productWindow && as.isLot())
{
log.fine("Lot=" + fieldLotString.getText ());
String text = fieldLotString.getText();
m_masi.setLot (text);
if (as.isLotMandatory() && (text == null || text.length() == 0))
mandatory += " - " + Msg.translate(Env.getCtx(), "Lot");
m_changed = true;
} // Lot
if (!m_productWindow && as.isSerNo())
{
log.fine("SerNo=" + fieldSerNo.getText());
String text = fieldSerNo.getText();
m_masi.setSerNo(text);
if (as.isSerNoMandatory() && (text == null || text.length() == 0))
mandatory += " - " + Msg.translate(Env.getCtx(), "SerNo");
m_changed = true;
} // SerNo
if (!m_productWindow && as.isGuaranteeDate())
{
log.fine("GuaranteeDate=" + fieldGuaranteeDate.getValue());
Timestamp ts = (Timestamp)fieldGuaranteeDate.getValue();
m_masi.setGuaranteeDate(ts);
if (as.isGuaranteeDateMandatory() && ts == null)
mandatory += " - " + Msg.translate(Env.getCtx(), "GuaranteeDate");
m_changed = true;
} // GuaranteeDate
// *** Save Attributes ***
// New Instance
if (m_changed || m_masi.getM_AttributeSetInstance_ID() == 0)
{
m_masi.save ();
m_M_AttributeSetInstance_ID = m_masi.getM_AttributeSetInstance_ID ();
m_M_AttributeSetInstanceName = m_masi.getDescription();
}
// Save Instance Attributes
MAttribute[] attributes = as.getMAttributes(!m_productWindow);
for (int i = 0; i < attributes.length; i++)
{
if (MAttribute.ATTRIBUTEVALUETYPE_List.equals(attributes[i].getAttributeValueType()))
{
CComboBox editor = (CComboBox)m_editors.get(i);
MAttributeValue value = (MAttributeValue)editor.getSelectedItem();
log.fine(attributes[i].getName() + "=" + value);
if (attributes[i].isMandatory() && value == null)
mandatory += " - " + attributes[i].getName();
attributes[i].setMAttributeInstance(m_M_AttributeSetInstance_ID, value);
}
else if (MAttribute.ATTRIBUTEVALUETYPE_Number.equals(attributes[i].getAttributeValueType()))
{
VNumber editor = (VNumber)m_editors.get(i);
BigDecimal value = (BigDecimal)editor.getValue();
log.fine(attributes[i].getName() + "=" + value);
if (attributes[i].isMandatory() && value == null)
mandatory += " - " + attributes[i].getName();
attributes[i].setMAttributeInstance(m_M_AttributeSetInstance_ID, value);
}
else
{
VString editor = (VString)m_editors.get(i);
String value = editor.getText();
log.fine(attributes[i].getName() + "=" + value);
if (attributes[i].isMandatory() && (value == null || value.length() == 0))
mandatory += " - " + attributes[i].getName();
attributes[i].setMAttributeInstance(m_M_AttributeSetInstance_ID, value);
}
m_changed = true;
} // for all attributes
// Save Model
if (m_changed)
{
m_masi.setDescription ();
m_masi.save ();
}
m_M_AttributeSetInstance_ID = m_masi.getM_AttributeSetInstance_ID ();
m_M_AttributeSetInstanceName = m_masi.getDescription();
//
if (mandatory.length() > 0)
{
ADialog.error(m_WindowNo, this, "FillMandatory", mandatory);
return false;
}
return true;
} // saveSelection
/**************************************************************************
* Get Instance ID
* @return Instance ID
*/
public int getM_AttributeSetInstance_ID()
{
return m_M_AttributeSetInstance_ID;
} // getM_AttributeSetInstance_ID
/**
* Get Instance Name
* @return Instance Name
*/
public String getM_AttributeSetInstanceName()
{
return m_M_AttributeSetInstanceName;
} // getM_AttributeSetInstanceName
/**
* Value Changed
* @return true if changed
*/
public boolean isChanged()
{
return m_changed;
} // isChanged
} // VPAttributeDialog
/*****************************************************************************
* Mouse Listener for Popup Menu
*/
final class VPAttributeDialog_mouseAdapter extends java.awt.event.MouseAdapter
{
/**
* Constructor
* @param adaptee adaptee
*/
VPAttributeDialog_mouseAdapter(VPAttributeDialog adaptee)
{
this.adaptee = adaptee;
} // VPAttributeDialog_mouseAdapter
private VPAttributeDialog adaptee;
/**
* Mouse Listener
* @param e MouseEvent
*/
public void mouseClicked(MouseEvent e)
{
// System.out.println("mouseClicked " + e.getID() + " " + e.getSource().getClass().toString());
// popup menu
if (SwingUtilities.isRightMouseButton(e))
adaptee.popupMenu.show((Component)e.getSource(), e.getX(), e.getY());
} // mouse Clicked
} // VPAttributeDialog_mouseAdapter
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -