Browse Source

REPORT-134161 & REPORT-134062 REPORT-133943 fix:NewUI 版本管理注释面板、远程设计权限面板问题

fbp/release
Levy.Xie-解安森 2 months ago
parent
commit
738e2330ce
  1. 15
      designer-base/src/main/java/com/fine/theme/utils/FineLayoutBuilder.java
  2. 29
      designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java
  3. 5
      designer-base/src/main/java/com/fr/design/file/TemplateDirTreePane.java
  4. 4
      designer-base/src/main/java/com/fr/design/gui/itree/checkboxtree/CheckBoxTreeCellRenderer.java
  5. 18
      designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateDirTreeSearchPane.java
  6. 36
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/EditFileVersionDialog.java
  7. 2
      designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties

15
designer-base/src/main/java/com/fine/theme/utils/FineLayoutBuilder.java

@ -4,8 +4,8 @@ import com.fine.swing.ui.layout.Column;
import com.fine.swing.ui.layout.Layouts;
import com.fine.swing.ui.layout.Row;
import com.fine.swing.ui.layout.Spacer;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.foldablepane.UIExpandablePane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.collections.combination.Pair;
@ -75,7 +75,7 @@ public class FineLayoutBuilder {
Row row = new Row();
List<Component> visibleComponents = Arrays.stream(componentArray)
.filter(com -> com != null && com.isVisible()).collect(Collectors.toList());
if (visibleComponents.size() >= 1) {
if (!visibleComponents.isEmpty()) {
// 仅当存在可见组件时处理布局
dealWithVisibleComponents(weight, column, componentArray, row, visibleComponents);
}
@ -87,6 +87,17 @@ public class FineLayoutBuilder {
return new JPanel();
}
/**
* 典型的左右网格布局竖向间距为典型间距标签及组件比例采用典型比例
*
* @param components 组件两列多行
* @return 面板
*/
public static JPanel commonLeftRightLayout(Component[][] components) {
return compatibleTableLayout(LayoutConstants.VERTICAL_GAP, components,
new double[]{LayoutConstants.LEFT_WEIGHT, LayoutConstants.RIGHT_WEIGHT});
}
private static void dealWithVisibleComponents(double[] weight, Column column, Component[] value, Row row, List<Component> components) {
if (components.size() == 1 && value[0] != null) {
// 仅存在首个元素,则该元素自适应占满整行

29
designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java

@ -1,8 +1,8 @@
package com.fr.design.file;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineComponentsFactory;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.actions.UpdateAction;
import com.fr.design.actions.file.DelFileAction;
@ -33,7 +33,6 @@ import com.fr.stable.StringUtils;
import com.fr.stable.collections.CollectionUtils;
import com.fr.stable.project.ProjectConstants;
import javax.swing.BorderFactory;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@ -42,15 +41,11 @@ import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.flex;
import static com.fine.swing.ui.layout.Layouts.row;
import static javax.swing.JOptionPane.WARNING_MESSAGE;
import static javax.swing.JOptionPane.YES_NO_OPTION;
@ -380,28 +375,16 @@ public class DefaultTemplateTreeDefineProcessor extends AbstractTemplateTreeDefi
// 确认按钮,默认就可用
confirmButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Confirm"));
FineUIStyle.setStyle(confirmButton, FineUIStyle.STYLE_PRIMARY);
confirmButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
confirmClose();
}
});
confirmButton.addActionListener(e -> confirmClose());
confirmButton.setEnabled(true);
// 取消按钮
UIButton cancelButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Cancel"));
cancelButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
cancelButton.addActionListener(e -> dispose());
this.add(row(8, flex(), cell(confirmButton), cell(cancelButton))
.with(it -> it.setBorder(new ScaledEmptyBorder(0, 0, 10, 10))).getComponent(), BorderLayout.SOUTH);
JPanel buttonPane = FineComponentsFactory.createConfirmCancelButtonPane(confirmButton, cancelButton);
buttonPane.setBorder(new ScaledEmptyBorder(0, 10, 10, 10));
this.add(buttonPane, BorderLayout.SOUTH);
this.setSize(FineUIScale.scale(new Dimension(660, 600)));
this.setTitle(Toolkit.i18nText("Fine-Design_Basic_Move"));

5
designer-base/src/main/java/com/fr/design/file/TemplateDirTreePane.java

@ -1,6 +1,7 @@
package com.fr.design.file;
import com.fr.base.FRContext;
import com.fr.design.border.FineBorderFactory;
import com.fr.design.gui.itree.filetree.TemplateDirTree;
import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode;
import com.fr.design.i18n.Toolkit;
@ -11,11 +12,9 @@ import com.fr.file.filetree.IOFileNodeFilter;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.ArrayUtils;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.tree.TreePath;
import java.awt.BorderLayout;
import java.awt.Color;
/**
* 目录树面板
@ -35,7 +34,7 @@ public class TemplateDirTreePane extends JPanel {
public TemplateDirTreePane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createLineBorder(Color.gray));
this.setBorder(FineBorderFactory.createWrappedRoundBorder());
templateDirTree = new TemplateDirTree();
remindPane = new TemplateDirSearchRemindPane(getTemplateDirTree());

4
designer-base/src/main/java/com/fr/design/gui/itree/checkboxtree/CheckBoxTreeCellRenderer.java

@ -17,7 +17,6 @@ import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreePath;
import java.awt.BorderLayout;
@ -65,6 +64,7 @@ public class CheckBoxTreeCellRenderer extends NullPanel implements TreeCellRende
add(_checkBox, BorderLayout.WEST);
JPanel gapPanel = new JPanel();
gapPanel.setPreferredSize(FineUIScale.scale(new Dimension(4, 20)));
gapPanel.setOpaque(false);
add(gapPanel, BorderLayout.CENTER);
_actualTreeRenderer = renderer;
}
@ -80,7 +80,7 @@ public class CheckBoxTreeCellRenderer extends NullPanel implements TreeCellRende
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
_checkBox.setPreferredSize(FineUIScale.scale(new Dimension(PROTOTYPE.getPreferredSize().width, 0)));
setComponentOrientation(tree.getComponentOrientation());
setOpaque(false);
TreePath path = tree.getPathForRow(row);
handleCheckBox(tree, path);

18
designer-base/src/main/java/com/fr/design/mainframe/manager/search/searcher/control/pane/TemplateDirTreeSearchPane.java

@ -1,8 +1,8 @@
package com.fr.design.mainframe.manager.search.searcher.control.pane;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.data.datapane.management.search.pane.FineSearchPane;
import com.fr.design.file.TemplateDirTreePane;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.manager.search.TemplateDirTreeSearchManager;
@ -10,15 +10,10 @@ import com.fr.design.search.event.TreeSearchStatusChangeEvent;
import com.fr.design.search.event.TreeSearchStatusChangeListener;
import com.fr.stable.StringUtils;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
@ -29,11 +24,6 @@ import java.awt.event.MouseEvent;
*/
public class TemplateDirTreeSearchPane extends JPanel implements TreeSearchStatusChangeListener {
/**
* 搜索输入框
*/
private UITextField searchTextField;
/**
* 搜索面板
*/
@ -43,14 +33,14 @@ public class TemplateDirTreeSearchPane extends JPanel implements TreeSearchStatu
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
TemplateDirTreeSearchManager.getInstance().startSearch(searchTextField.getText());
TemplateDirTreeSearchManager.getInstance().startSearch(searchPane.getText());
}
}
};
public TemplateDirTreeSearchPane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(10, 15, 0, 10));
this.setBorder(new ScaledEmptyBorder(10, 10, 0, 10));
initSearchPane();
add(searchPane, BorderLayout.CENTER);
TemplateDirTreeSearchManager.getInstance().registerTreeSearchStatusChangeListener(this);
@ -94,7 +84,7 @@ public class TemplateDirTreeSearchPane extends JPanel implements TreeSearchStatu
}
private void dealWithTextChange() {
if (StringUtils.isEmpty(searchTextField.getText()) && TemplateDirTreeSearchManager.getInstance().isInSearchMode()) {
if (StringUtils.isEmpty(searchPane.getText()) && TemplateDirTreeSearchManager.getInstance().isInSearchMode()) {
// 如果是搜索模式下,看作是用户删除输入框文字,仅复原TemplateTreePane
TemplateDirTreeSearchManager.getInstance().restoreTreePane();
TemplateDirTreePane.getInstance().refreshDockingView();

36
designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/EditFileVersionDialog.java

@ -1,5 +1,11 @@
package com.fr.design.mainframe.vcs.ui;
import com.fine.swing.ui.layout.Column;
import com.fine.theme.utils.FineComponentsFactory;
import com.fine.theme.utils.FineLayoutBuilder;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.border.FineBorderFactory;
import com.fr.design.dialog.UIDialog;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icontainer.UIScrollPane;
@ -10,7 +16,6 @@ import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrameFileDealerPane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.report.entity.VcsEntity;
import com.fr.stable.StringUtils;
import com.fr.workspace.WorkContext;
@ -19,7 +24,7 @@ import com.fr.workspace.server.vcs.VcsOperator;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@ -47,7 +52,7 @@ public class EditFileVersionDialog extends UIDialog {
initComponents();
setModal(true);
setTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_Save_Version"));
setSize(300, 220);
setSize(FineUIScale.scale(new Dimension(300, 220)));
setResizable(false);
GUICoreUtils.centerWindow(this);
@ -55,15 +60,20 @@ public class EditFileVersionDialog extends UIDialog {
private void initComponents() {
Column centerColumn = new Column();
centerColumn.setSpacing(10);
add(centerColumn, BorderLayout.CENTER);
JPanel fontPane = new JPanel(new BorderLayout());
UILabel fontLabel = new UILabel(" " + Toolkit.i18nText("Fine-Design_Vcs_Version_Message") + ":");
UILabel fontLabel = new UILabel(Toolkit.i18nText("Fine-Design_Vcs_Version_Message"));
fontLabel.setToolTipText(Toolkit.i18nText("Fine-Design_Vcs_Version_Message"));
fontPane.add(fontLabel, BorderLayout.NORTH);
msgTestArea.setBorder(null);
UIScrollPane scrollPane = new UIScrollPane(msgTestArea);
UILabel versionTip = new UILabel(" " + Toolkit.i18nText("Fine-Design_Vcs_Version_Number") + ":");
JPanel scrollPane = FineLayoutBuilder.asBorderLayoutWrapped(new UIScrollPane(msgTestArea));
scrollPane.setBorder(FineBorderFactory.createWrappedRoundBorder());
UILabel versionTip = new UILabel(Toolkit.i18nText("Fine-Design_Vcs_Version_Number"));
versionTip.setToolTipText(Toolkit.i18nText("Fine-Design_Vcs_Version_Number"));
Component[][] components = new Component[][]{
new Component[]{versionTip, versionLabel},
@ -72,16 +82,16 @@ public class EditFileVersionDialog extends UIDialog {
double[] rowSizes = new double[]{25, 100};
double[] columnSizes = new double[]{70, 200};
add(TableLayoutHelper.createTableLayoutPane(components, rowSizes, columnSizes), BorderLayout.CENTER);
JPanel buttonPane = new JPanel(new FlowLayout(FlowLayout.RIGHT));
add(buttonPane, BorderLayout.SOUTH);
JPanel pane = TableLayoutHelper.createTableLayoutPane(components, rowSizes, columnSizes);
UIButton ok = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_OK"));
UIButton cancel = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Utils_Design_Action_Cancel"));
JPanel buttonPane = FineComponentsFactory.createConfirmCancelButtonPane(ok, cancel);
centerColumn.add(pane);
centerColumn.add(buttonPane);
centerColumn.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
buttonPane.add(ok);
buttonPane.add(cancel);
ok.addActionListener(new ActionListener() {
@Override

2
designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties

@ -1128,7 +1128,7 @@ Tree.selectionInactiveBackground = @selectionBackground
Tree.selectionInactiveForeground = @selectionForeground
Tree.textBackground = $Tree.background
Tree.textForeground = $Tree.foreground
Tree.selectionBorderColor = @cellFocusColor
Tree.selectionBorderColor = #00000000
Tree.dropCellBackground = @dropCellBackground
Tree.dropCellForeground = @dropCellForeground
Tree.dropLineColor = @dropLineColor

Loading…
Cancel
Save