配置一览结果集的颜色(前景色,背景色,边框)
一、SXP_CellConfigの中に、Cellの拡張定義
现在定义在Seisan,可以移到Bcomm或xApplication里
@Override
protected Border getColumnBorder(int index, MCColumnConfig column,
MCTable<?> table) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String bcKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(), ""bc""
});
String label = MCConst.label.getLabel(bcKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
LineBorder redBorder = new LineBorder(color, 1, true);
return redBorder;
}
return super.getColumnBorder(index, column, table);
}
@Override
protected Color getCustomBG(int index, MCColumnConfig column, MCTable table,
MCMode mode) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String bgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(), ""bg""
});
Color color = super.getCustomBG(index, column, table, mode);
String label = MCConst.label.getLabel(bgKey);
if (!isNull(label)) {
color = MCResource.createColor(label);
}
return color;
}
@Override
protected Color getCustomFG(int index, MCColumnConfig column, MCTable table,
MCMode mode) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String fgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(), ""fg""
});
Color color = super.getCustomFG(index, column, table, mode);
String label = MCConst.label.getLabel(fgKey);
if (!isNull(label)) {
color = MCResource.createColor(label);
}
return color;
}
public static void setCellConfig(MCTable<?> table) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String fgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), table.getName(), ""fg""
});
String bgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), table.getName(), ""bg""
});
String bcKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), table.getName(), ""bc""
});
StringBuilder sb = new StringBuilder();
sb.append(""<!--MCTable-->"" + System.lineSeparator());
sb.append(""<"" + fgKey + ""></"" + fgKey + "">"" + System.lineSeparator());
sb.append(""<"" + bgKey + ""></"" + bgKey + "">"" + System.lineSeparator());
sb.append(""<"" + bcKey + ""></"" + bcKey + "">"" + System.lineSeparator());
sb.append(""<!--MCColumn-->"" + System.lineSeparator());
for (MCColumnConfig column : table.getColumnConfigs()) {
fgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(),
""fg""
});
bgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(),
""bg""
});
bcKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(),
""bc""
});
sb.append(""<"" + fgKey + ""></"" + fgKey + "">"" + System.lineSeparator());
sb.append(""<"" + bgKey + ""></"" + bgKey + "">"" + System.lineSeparator());
sb.append(""<"" + bcKey + ""></"" + bcKey + "">"" + System.lineSeparator());
}
MCBeansUtil.log(table, mcframe.commonS.notice.S_Msg.SBP0001W, sb.toString());
String label = MCConst.label.getLabel(fgKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
for (MCColumnConfig column : table.getColumnConfigs())
column.setHeaderForeground(color);
}
label = MCConst.label.getLabel(bgKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
for (MCColumnConfig column : table.getColumnConfigs())
column.setHeaderBackground(color);
}
label = MCConst.label.getLabel(bcKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
LineBorder redBorder = new LineBorder(color, 1, true);
for (MCColumnConfig column : table.getColumnConfigs()) {
column.setBorder(redBorder);
}
}
MCTable<?>[] partsTables = table.getPartsTables();
for (MCTable<?> tbl : partsTables) {
if (tbl.getCellConfig() instanceof MCCellConfig
|| tbl.getCellConfig() instanceof XPP_CellConfig) {
tbl.setCellConfig(new SXP_CellConfig());
}
else if (tbl.getCellConfig() instanceof SXP_CellConfig) {
}
else {
throw new MCException(Core_Msg_FW_A.WP000061, new Object[] {
tbl.getName()
});
}
setCellConfig(tbl);
}
}
二、画面実装
RsltTable:本画面的结果集
@Override
protected void setCellConfig() {
super.setCellConfig();
SXP_CellConfig.setCellConfig(RsltTable);
}
三、Color定義
以Table和Column的Name为基准,定义颜色的KEY
前景色:fg
背景色:bg
边框色:bc
设置示例
<mcframe>
<MCLabel>
<S.SBP0020>
<!-- MCLabel -->
<Upd.po_dt_Label.bg>100,200,100</Upd.po_dt_Label.bg>
<Upd.po_dt_Label.fg>100,100,100</Upd.po_dt_Label.fg>
<!-- MCColumn -->
<Rslt.schd_dlv_dt.fg>0,123,123</Rslt.schd_dlv_dt.fg>前景色 按单元格定义
<Rslt.schd_dlv_dt.bg></Rslt.schd_dlv_dt.bg>
<Rslt.schd_dlv_dt.bc></Rslt.schd_dlv_dt.bc>
<Sppl.sppl_nm.fg></Sppl.sppl_nm.fg>
<Sppl.sppl_nm.bg></Sppl.sppl_nm.bg>
<Sppl.sppl_nm.bc>0,250,0</Sppl.sppl_nm.bc>优先以Column为单位设置Column的边框色
<!--MCTable-->
<Rslt.table.fg></Rslt.table.fg>
<Rslt.table.bg></Rslt.table.bg>
<Rslt.table.bc></Rslt.table.bc>
<Sno.table.fg>255,40,0</Sno.table.fg>
<Sno.table.bg>0,0,210</Sno.table.bg>
<Sno.table.bc></Sno.table.bc>
<ItmPurcInfo.table.fg>255,80,0</ItmPurcInfo.table.fg>
<ItmPurcInfo.table.bg>0,0,170</ItmPurcInfo.table.bg>
<ItmPurcInfo.table.bc></ItmPurcInfo.table.bc>
<Dpt.table.fg>255,120,0</Dpt.table.fg>
<Dpt.table.bg>0,0,130</Dpt.table.bg>
<Dpt.table.bc></Dpt.table.bc>
<Itm.table.fg>255,160,0</Itm.table.fg>
<Itm.table.bg>0,0,90</Itm.table.bg>
<Itm.table.bc>250,0,0</Itm.table.bc>
<PoDNo.table.fg>255,200,0</PoDNo.table.fg>前景色 setHeaderForeground
<PoDNo.table.bg>0,0,50</PoDNo.table.bg>背景色 setHeaderBackground
<PoDNo.table.bc></PoDNo.table.bc>
<Sppl.table.fg></Sppl.table.fg>
<Sppl.table.bg></Sppl.table.bg>
<Sppl.table.bc>255,0,0</Sppl.table.bc>以Table为单位设置Column的边框色
</S.SBP0020>
</MCLabel>
</mcframe>
#SXP_CellConfig.java修改示例
package mcframe.clientSX.SXP0000;
import java.awt.Color;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
import mcframe.clientCore.beans.MCBeansUtil;
import mcframe.clientCore.beans.MCMode;
import mcframe.clientCore.beans.MCRootPanel;
import mcframe.clientCore.beans.table.MCCellConfig;
import mcframe.clientCore.beans.table.MCColumnConfig;
import mcframe.clientCore.beans.table.MCTable;
import mcframe.clientCore.resource.MCConst;
import mcframe.clientXP.XPP0070.XPP_CellConfig;
import mcframe.commonCore.annotation.EI;
import mcframe.commonCore.notice.Core_Msg_FW_A;
import mcframe.commonCore.notice.MCException;
import mcframe.commonCore.resource.ctrl.MCResource;
import static mcframe.clientCU.CUP0010.CUP_MCDataUtil.*;
/**
* extends以外は本クラスを直接編集しないで下さい。
* カスタマイズする場合はSXP_CellConfig_MCと本クラスの間にカスタマイズクラスを挟んでください。<br>
* その場合は本クラスのextendsを書き換える必要があります。
*/
@EI
public class SXP_CellConfig extends SXP_CellConfig_MC {
@Override
protected Border getColumnBorder(int index, MCColumnConfig column, MCTable<?> table) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String bcKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(), "bc"
});
String label = MCConst.app.getString(bcKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
LineBorder redBorder = new LineBorder(color, 1, true);
return redBorder;
}
bcKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), table.getName(), "bc"
});
label = MCConst.app.getString(bcKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
LineBorder redBorder = new LineBorder(color, 1, true);
return redBorder;
}
return super.getColumnBorder(index, column, table);
}
@Override
protected Color getCustomBG(int index, MCColumnConfig column, MCTable table,
MCMode mode) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String bgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(), "bg"
});
Color color = super.getCustomBG(index, column, table, mode);
String label = MCConst.app.getString(bgKey);
if (!isNull(label)) {
color = MCResource.createColor(label);
}
return color;
}
@Override
protected Color getCustomFG(int index, MCColumnConfig column, MCTable table,
MCMode mode) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String fgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(), "fg"
});
Color color = super.getCustomFG(index, column, table, mode);
String label = MCConst.app.getString(fgKey);
if (!isNull(label)) {
color = MCResource.createColor(label);
}
return color;
}
public static void setCellConfig(MCTable<?> table) {
MCRootPanel rootPanel = table.getBaseRootPanel();
String fgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), table.getName(), "fg"
});
String bgKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), table.getName(), "bg"
});
String bcKey = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), table.getName(), "bc"
});
StringBuilder sb = new StringBuilder();
sb.append("<!--MCTable-->" + System.lineSeparator());
sb.append("<" + fgKey + "></" + fgKey + ">" + System.lineSeparator());
sb.append("<" + bgKey + "></" + bgKey + ">" + System.lineSeparator());
sb.append("<" + bcKey + "></" + bcKey + ">" + System.lineSeparator());
sb.append("<!--MCColumn-->" + System.lineSeparator());
for (MCColumnConfig column : table.getColumnConfigs()) {
String fgKeyC = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(),
"fg"
});
String bgKeyC = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(),
"bg"
});
String bcKeyC = MCConst.createKey(new String[] {
rootPanel.getModuleID(), rootPanel.getScreenID(), column.getName(),
"bc"
});
sb.append("<" + fgKeyC + "></" + fgKeyC + ">" + System.lineSeparator());
sb.append("<" + bgKeyC + "></" + bgKeyC + ">" + System.lineSeparator());
sb.append("<" + bcKeyC + "></" + bcKeyC + ">" + System.lineSeparator());
}
MCBeansUtil.log(table, mcframe.commonS.notice.S_Msg.SBP0001W, sb.toString());
String label = MCConst.app.getString(fgKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
for (MCColumnConfig column : table.getColumnConfigs())
column.setHeaderForeground(color);
}
label = MCConst.app.getString(bgKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
for (MCColumnConfig column : table.getColumnConfigs())
column.setHeaderBackground(color);
}
label = MCConst.app.getString(bcKey);
if (!isNull(label)) {
Color color = MCResource.createColor(label);
LineBorder redBorder = new LineBorder(color, 1, true);
for (MCColumnConfig column : table.getColumnConfigs()) {
column.setBorder(redBorder);
}
}
//颜色取值以Table为单位,需要遍历所有部品的Table
MCTable<?>[] partsTables = table.getPartsTables();
for (MCTable<?> tbl : partsTables) {
if (tbl.getCellConfig() instanceof MCCellConfig
|| tbl.getCellConfig() instanceof XPP_CellConfig) {
tbl.setCellConfig(new SXP_CellConfig());
}
else if (tbl.getCellConfig() instanceof SXP_CellConfig) {
}
else {
throw new MCException(Core_Msg_FW_A.WP000061, new Object[] {
tbl.getName()
});
}
setCellConfig(tbl);
}
}
}