Browse Source

KERNEL-3521 添加FineKit依赖

remotes/1611766341912730171/master
lucian 5 years ago
parent
commit
6eabb72ab5
  1. 9
      src/main/java/com/fanruan/api/concurrent/ConcurrentKit.java
  2. 2
      src/main/java/com/fanruan/api/conf/impl/xml/XmlColConf.java
  3. 2
      src/main/java/com/fanruan/api/conf/impl/xml/XmlConf.java
  4. 2
      src/main/java/com/fanruan/api/conf/xml/XmlHolderKit.java
  5. 30
      src/main/java/com/fanruan/api/design/DesignKit.java
  6. 17
      src/main/java/com/fanruan/api/design/mainframe/HyperlinkGroupPaneAction.java
  7. 15
      src/main/java/com/fanruan/api/design/ui/component/table/model/DesignModelAdapterKit.java
  8. 9
      src/main/java/com/fanruan/api/design/util/GUICoreKit.java
  9. 192
      src/main/java/com/fanruan/api/design/work/SelectImagePane.java
  10. 12
      src/main/java/com/fanruan/api/design/work/WidgetPropertyPane.java
  11. 4
      src/main/java/com/fanruan/api/design/work/component/ParameterComboBox.java
  12. 3
      src/test/java/com/fanruan/api/conf/xml/XmlHolderKitTest.java

9
src/main/java/com/fanruan/api/concurrent/ConcurrentKit.java

@ -9,7 +9,12 @@ import com.fr.concurrent.NamedThreadFactory;
*/ */
public class ConcurrentKit { public class ConcurrentKit {
public static NamedThreadFactory newNamedThreadFactory(String s) { /**
return new NamedThreadFactory(s); * 创建命名的线程工厂
* @param prefix 线程池名称前缀
* @return 线程工厂
*/
public static NamedThreadFactory newNamedThreadFactory(String prefix) {
return new NamedThreadFactory(prefix);
} }
} }

2
src/main/java/com/fanruan/api/conf/xml/XmlColConf.java → src/main/java/com/fanruan/api/conf/impl/xml/XmlColConf.java

@ -1,4 +1,4 @@
package com.fanruan.api.conf.xml; package com.fanruan.api.conf.impl.xml;
import java.util.Collection; import java.util.Collection;

2
src/main/java/com/fanruan/api/conf/xml/XmlConf.java → src/main/java/com/fanruan/api/conf/impl/xml/XmlConf.java

@ -1,4 +1,4 @@
package com.fanruan.api.conf.xml; package com.fanruan.api.conf.impl.xml;
import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLable;

2
src/main/java/com/fanruan/api/conf/xml/XmlHolderKit.java

@ -1,5 +1,7 @@
package com.fanruan.api.conf.xml; package com.fanruan.api.conf.xml;
import com.fanruan.api.conf.impl.xml.XmlColConf;
import com.fanruan.api.conf.impl.xml.XmlConf;
import com.fr.config.holder.Conf; import com.fr.config.holder.Conf;
import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLable;

30
src/main/java/com/fanruan/api/design/DesignKit.java

@ -1,14 +1,20 @@
package com.fanruan.api.design; package com.fanruan.api.design;
import com.fr.design.mainframe.WidgetPropertyPane;
import com.fr.base.TableData; import com.fr.base.TableData;
import com.fr.design.DesignModelAdapter;
import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.data.datapane.preview.PreviewTablePane;
import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.DesignerBean; import com.fr.design.mainframe.DesignerBean;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.DesignerFrame;
import com.fr.design.mainframe.HyperlinkGroupPaneActionImpl;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
import javax.swing.JComponent;
public class DesignKit { public class DesignKit {
/** /**
* 直接预览数据集没有实际值及显示值 * 直接预览数据集没有实际值及显示值
@ -67,4 +73,28 @@ public class DesignKit {
public static DesignerBean getDesignerBean(String name) { public static DesignerBean getDesignerBean(String name) {
return DesignerContext.getDesignerBean(name); return DesignerContext.getDesignerBean(name);
} }
/**
* 超链接面板操作
* @return 操作对象
*/
public static HyperlinkGroupPaneActionProvider getHyperlinkGroupPaneAction() {
return HyperlinkGroupPaneActionImpl.getInstance();
}
/**
* 当前的设计模式 FormModel or WorkBookModel
* @return 设计器模式
*/
public static DesignModelAdapter<?, ?> getCurrentModelAdapter() {
return DesignModelAdapter.getCurrentModelAdapter();
}
/**
* 控件属性容器
*/
public static JComponent getWidgetComponent() {
return (JComponent) (WidgetPropertyPane.getInstance().getEditingFormDesigner().getSelectionModel().getSelection().getSelectedCreator()).getComponent(0);
}
} }

17
src/main/java/com/fanruan/api/design/mainframe/HyperlinkGroupPaneAction.java

@ -1,17 +0,0 @@
package com.fanruan.api.design.mainframe;
import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider;
import com.fr.design.mainframe.HyperlinkGroupPaneActionImpl;
/**
* @author Lucian.Chen
* @version 10.0
* Created by Lucian.Chen on 2020/3/23
*/
public class HyperlinkGroupPaneAction {
public static HyperlinkGroupPaneActionProvider getInstance() {
return HyperlinkGroupPaneActionImpl.getInstance();
}
}

15
src/main/java/com/fanruan/api/design/ui/component/table/model/DesignModelAdapterKit.java

@ -1,15 +0,0 @@
package com.fanruan.api.design.ui.component.table.model;
import com.fr.design.DesignModelAdapter;
/**
* @author Lucian.Chen
* @version 10.0
* Created by Lucian.Chen on 2020/3/27
*/
public class DesignModelAdapterKit {
public static DesignModelAdapter<?, ?> getCurrentModelAdapter() {
return DesignModelAdapter.getCurrentModelAdapter();
}
}

9
src/main/java/com/fanruan/api/design/util/GUICoreKit.java

@ -139,6 +139,15 @@ public class GUICoreKit {
return FRGUIPaneFactory.createBorderLayout(); return FRGUIPaneFactory.createBorderLayout();
} }
/**
* 创建一个靠左空边框面板间隔中等
*
* @return JPanel对象
*/
public static JPanel createMediumHGapHighTopFlowInnerContainerPane() {
return FRGUIPaneFactory.createMediumHGapHighTopFlowInnerContainer_M_Pane();
}
/** /**
* 设置一个窗口居中 * 设置一个窗口居中
*/ */

192
src/main/java/com/fanruan/api/design/work/SelectImagePane.java

@ -1,18 +1,198 @@
package com.fanruan.api.design.work; package com.fanruan.api.design.work;
import com.fanruan.api.design.ui.component.UIButton;
import com.fanruan.api.design.ui.component.UIRadioButton;
import com.fanruan.api.design.util.GUICoreKit;
import com.fanruan.api.report.cell.CellImage; import com.fanruan.api.report.cell.CellImage;
import com.fr.base.Style;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.ImgChooseWrapper;
import com.fr.design.style.background.image.ImageFileChooser;
import com.fr.design.style.background.image.ImagePreviewPane;
import com.fr.report.cell.Elem;
import com.fr.report.cell.painter.CellImagePainter;
import com.fr.stable.Constants;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
/** /**
* @author Lucian.Chen * 这个类主要用于插入图片时的设置
* @version 10.0
* Created by Lucian.Chen on 2020/3/23
*/ */
public class SelectImagePane extends com.fr.design.report.SelectImagePane { public class SelectImagePane extends BasicPane {
private ImagePreviewPane previewPane = null;
private ImageFileChooser imageFileChooser = null;
private UIRadioButton defaultRadioButton = null;
private UIRadioButton tiledRadioButton = null;
private UIRadioButton extendRadioButton = null;
private UIRadioButton adjustRadioButton = null;
private Style imageStyle = null;
private File imageFile;
public SelectImagePane() { public SelectImagePane() {
super(); this.setLayout(GUICoreKit.createBorderLayout());
// preview pane
JPanel previewContainerPane = GUICoreKit.createBorderLayoutPane();
this.add(previewContainerPane, BorderLayout.CENTER);
JPanel previewOwnerPane = GUICoreKit.createBorderLayoutPane();
previewContainerPane.add(previewOwnerPane, BorderLayout.CENTER);
previewOwnerPane.setBorder(GUICoreKit.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"), null));
previewPane = new ImagePreviewPane();
previewOwnerPane.add(new JScrollPane(previewPane));
JPanel selectFilePane = GUICoreKit.createBorderLayoutPane();
previewContainerPane.add(selectFilePane, BorderLayout.EAST);
selectFilePane.setBorder(BorderFactory
.createEmptyBorder(8, 2, 4, 0));
UIButton selectPictureButton = new UIButton(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Image_Select_Picture"));
selectFilePane.add(selectPictureButton, BorderLayout.NORTH);
selectPictureButton.setMnemonic('S');
selectPictureButton.addActionListener(selectPictureActionListener);
JPanel layoutPane = GUICoreKit.createMediumHGapHighTopFlowInnerContainerPane();
selectFilePane.add(layoutPane, BorderLayout.CENTER);
//布局
defaultRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Default"));
tiledRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Image_Titled"));
extendRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Image_Extend"));
adjustRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Image_Adjust"));
defaultRadioButton.addActionListener(layoutActionListener);
tiledRadioButton.addActionListener(layoutActionListener);
extendRadioButton.addActionListener(layoutActionListener);
adjustRadioButton.addActionListener(layoutActionListener);
JPanel jp = new JPanel(new GridLayout(4, 1, 15, 15));
jp.add(defaultRadioButton);
jp.add(tiledRadioButton);
jp.add(extendRadioButton);
jp.add(adjustRadioButton);
layoutPane.add(jp);
ButtonGroup layoutBG = new ButtonGroup();
layoutBG.add(defaultRadioButton);
layoutBG.add(tiledRadioButton);
layoutBG.add(extendRadioButton);
layoutBG.add(adjustRadioButton);
defaultRadioButton.setSelected(true);
// init image file chooser.
imageFileChooser = new ImageFileChooser();
imageFileChooser.setMultiSelectionEnabled(false);
}
/**
* Select picture.
*/
ActionListener selectPictureActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
int returnVal = imageFileChooser
.showOpenDialog(SelectImagePane.this);
if (returnVal != JFileChooser.CANCEL_OPTION) {
File selectedFile = imageFileChooser.getSelectedFile();
imageFile = selectedFile;
ImgChooseWrapper.getInstance(previewPane, imageFileChooser, imageStyle, null).dealWithImageFile(returnVal);
}
}
};
// 调整图片样式,只有水平和垂直对齐以及拉伸。相对于背景,平铺不予考虑。
private void changeImageStyle() {
previewPane.setImageStyle(this.imageStyle);
previewPane.repaint();
}
private void setImageStyle() {
if (tiledRadioButton.isSelected()) {
imageStyle = Style.DEFAULT_STYLE.deriveImageLayout(Constants.IMAGE_TILED);
} else if (adjustRadioButton.isSelected()) {
imageStyle = Style.DEFAULT_STYLE.deriveImageLayout(Constants.IMAGE_ADJUST);
} else if (extendRadioButton.isSelected()) {
imageStyle = Style.DEFAULT_STYLE.deriveImageLayout(Constants.IMAGE_EXTEND);
} else {
imageStyle = Style.DEFAULT_STYLE.deriveImageLayout(Constants.IMAGE_CENTER);
}
}
ActionListener layoutActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
setImageStyle();
changeImageStyle();
}
};
@Override
protected String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Image");
}
public void populate(Elem cell) {
Style style = null;
if (cell != null) {
Object value = cell.getValue();
if (value instanceof Image) {
setImage((Image) value);
} else if (value instanceof CellImagePainter) {
setImage(((CellImagePainter) value).getImage());
}
style = cell.getStyle();
}
if (style == null) {
return;
}
if (style.getImageLayout() == Constants.IMAGE_TILED) {
tiledRadioButton.setSelected(true);
} else if (style.getImageLayout() == Constants.IMAGE_EXTEND) {
extendRadioButton.setSelected(true);
} else if (style.getImageLayout() == Constants.IMAGE_ADJUST) {
adjustRadioButton.setSelected(true);
} else {
style.deriveImageLayout(Constants.IMAGE_CENTER);
defaultRadioButton.setSelected(true);
}
this.imageStyle = style;
changeImageStyle();
}
public void setImage(Image image) {
previewPane.setImage(image);
} }
public CellImage update() { public CellImage update() {
return (CellImage) super.update(); CellImage cellImage = new CellImage();
cellImage.setImage(previewPane.getImageWithSuffix());
cellImage.setStyle(this.imageStyle);
return cellImage;
}
public File getSelectedImage() {
return imageFile;
} }
} }

12
src/main/java/com/fanruan/api/design/work/WidgetPropertyPane.java

@ -1,12 +0,0 @@
package com.fanruan.api.design.work;
/**
* 控件属性表绘制
*
*/
public class WidgetPropertyPane {
public static com.fr.design.mainframe.WidgetPropertyPane getInstance() {
return com.fr.design.mainframe.WidgetPropertyPane.getInstance();
}
}

4
src/main/java/com/fanruan/api/design/work/component/ParameterComboBox.java

@ -1,8 +1,8 @@
package com.fanruan.api.design.work.component; package com.fanruan.api.design.work.component;
import com.fanruan.api.cal.ParameterKit; import com.fanruan.api.cal.ParameterKit;
import com.fanruan.api.design.DesignKit;
import com.fanruan.api.design.ui.component.UIComboBox; import com.fanruan.api.design.ui.component.UIComboBox;
import com.fanruan.api.design.ui.component.table.model.DesignModelAdapterKit;
import com.fanruan.api.util.AssistKit; import com.fanruan.api.util.AssistKit;
import com.fr.design.DesignModelAdapter; import com.fr.design.DesignModelAdapter;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
@ -42,7 +42,7 @@ public class ParameterComboBox extends UIComboBox<ParameterProvider> {
public void updateParaItems() { public void updateParaItems() {
DesignModelAdapter<?, ?> designModel = DesignModelAdapterKit.getCurrentModelAdapter(); DesignModelAdapter<?, ?> designModel = DesignKit.getCurrentModelAdapter();
this.removeAllItems(); this.removeAllItems();
if (designModel != null) { if (designModel != null) {

3
src/test/java/com/fanruan/api/conf/xml/XmlHolderKitTest.java

@ -1,7 +1,10 @@
package com.fanruan.api.conf.xml; package com.fanruan.api.conf.xml;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.fanruan.api.conf.impl.xml.XmlColConf;
import com.fanruan.api.conf.impl.xml.XmlConf;
import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLable;
import org.easymock.EasyMock; import org.easymock.EasyMock;
import org.junit.Assert; import org.junit.Assert;

Loading…
Cancel
Save