Browse Source

REPORT-99485 模版tab双击添加新模版

newui
vito 6 months ago
parent
commit
c320946574
  1. 36
      designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java

36
designer-base/src/main/java/com/fr/design/file/MultiTemplateTabPane.java

@ -73,6 +73,7 @@ public class MultiTemplateTabPane extends Row {
private static final String UI_CLASS_ID = "TemplateTabPaneUI"; private static final String UI_CLASS_ID = "TemplateTabPaneUI";
private static final int GAP = 6; private static final int GAP = 6;
private static final int SMALLGAP = 4; private static final int SMALLGAP = 4;
private static final int DOUBLE_CLICK = 2;
/** /**
* 尾部动作区宽度 * 尾部动作区宽度
@ -122,6 +123,8 @@ public class MultiTemplateTabPane extends Row {
// 模板时,模板B会自动关闭 // 模板时,模板B会自动关闭
private JTemplate<?, ?> temTemplate = null; private JTemplate<?, ?> temTemplate = null;
private ActionListener newTemplateAction;
@Override @Override
public String getUIClassID() { public String getUIClassID() {
return UI_CLASS_ID; return UI_CLASS_ID;
@ -203,8 +206,9 @@ public class MultiTemplateTabPane extends Row {
* @param l 监听器 * @param l 监听器
*/ */
public void addLeadingAction(ActionListener l) { public void addLeadingAction(ActionListener l) {
leadingActionButton.removeActionListener(l); newTemplateAction = l;
leadingActionButton.addActionListener(l); leadingActionButton.removeActionListener(newTemplateAction);
leadingActionButton.addActionListener(newTemplateAction);
} }
public void setLeadingActionEnable(boolean enable) { public void setLeadingActionEnable(boolean enable) {
@ -322,12 +326,7 @@ public class MultiTemplateTabPane extends Row {
if (OK_OPTION == selVal) { if (OK_OPTION == selVal) {
CallbackSaveWorker worker = template.saveAs(); CallbackSaveWorker worker = template.saveAs();
worker.start(template.getRuntimeId()); worker.start(template.getRuntimeId());
worker.addSuccessCallback(new Runnable() { worker.addSuccessCallback(() -> gotoEditingTemplateLeaf(template.getPath()));
@Override
public void run() {
gotoEditingTemplateLeaf(template.getPath());
}
});
} }
} else { } else {
gotoEditingTemplateLeaf(template.getPath()); gotoEditingTemplateLeaf(template.getPath());
@ -701,6 +700,18 @@ public class MultiTemplateTabPane extends Row {
return evtX >= (maxWidth + SMALLGAP) && evtX <= (getWidth() - SMALLGAP); return evtX >= (maxWidth + SMALLGAP) && evtX <= (getWidth() - SMALLGAP);
} }
/**
* 判断是否在tab栏空白区
*
* @param evtX x坐标
* @return 是否在tab栏空白区
*/
private boolean isOverBlank(int evtX) {
int tabWidths = (maxPaintIndex - minPaintIndex + 1) * tabWidth;
int leftX = tabWidths + scale(LEADING_WIDTH);
return evtX >= leftX && evtX <= getWidth() - scale(TRAILING_WIDTH);
}
private int getTemplateIndex(int evtX) { private int getTemplateIndex(int evtX) {
int textX = scale(LEADING_WIDTH); int textX = scale(LEADING_WIDTH);
@ -768,6 +779,15 @@ public class MultiTemplateTabPane extends Row {
MultiTemplateTabPane.this.repaint(); MultiTemplateTabPane.this.repaint();
} }
@Override
public void mouseClicked(MouseEvent e) {
// 双击添加模板
if (e.getClickCount() == DOUBLE_CLICK
&& isOverBlank(e.getX())) {
newTemplateAction.actionPerformed(null);
}
}
/** /**
* 按下 * 按下
* *

Loading…
Cancel
Save