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
literal 0
HcmV?d00001
diff --git a/document/使用手册 b/document/使用手册
new file mode 100644
index 0000000..885c8bb
--- /dev/null
+++ b/document/使用手册
@@ -0,0 +1,17 @@
+EasySlides插件使用手册
+
+ EasySlides插件用于帆软设计平台决策报表,方便的生成及显示ppt。
+一、数据源
+ 使用帆软设计平台的数据集做为插件的数据源。
+ 1、数据源中需要提供一列字符串类型的文本内容。
+ 2、每一行文本,对应于ppt的每一页。
+ 3、每一行文本的格式,可以使用html标签来设置。
+二、参数设置
+ 1、幻灯片样式选择列表:选择ppt的显示方式。(将来会进一步增加样式,或者接受按需定制)
+ 2、背景颜色:ppt背景色。
+ 3、文字背景色,文字颜色。
+ 4、自动/手动播放。自动播放可以设置播放间隔时间(秒)。手动播放,使用键盘方向键进行。(可能需要先在网页中点击一下控件,以获取焦点)
+ 5、工具条、进度条、进度:显示在ppt底部,用于查看播放进度。
+
+备注:
+ 目前不支持图片显示,计划在下一步实现。
\ No newline at end of file
diff --git a/plugin.xml b/plugin.xml
index 75ef9f5..d3f80ff 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -5,11 +5,11 @@
yes
1.0
10.0
- 2019-11-1
+ 2019-12-1
Felix
[2019-11-21]Felix:适配新的API
+ [2019-12-241]Felix:适配新的API
]]>
diff --git a/specific.md b/specific.md
deleted file mode 100644
index 27f6bf2..0000000
--- a/specific.md
+++ /dev/null
@@ -1,16 +0,0 @@
-##UI组成
-- 数据源:一列,每行为一页slide的文字内容,其中可以用h5标签
-- 幻灯片样式选择列表
-- 背景颜色
-- 可选项:1、自动/手动播放;2、自动播放间隔时间
-
-##幻灯片样式
-- 左入,右入
-- 上入,下入
-- 前入,后入
-
-##比例
-- slide width:900->1536 padding:40
-- slide height:700->758 padding:60
-- slide fontsize:30->(1536*758)
-- slide line-height:36->(1536*758)
\ No newline at end of file
diff --git a/src/main/java/com/fr/plugin/easyslides/EasySlidesWidget.java b/src/main/java/com/fr/plugin/easyslides/EasySlidesWidget.java
index d488d5e..5d82858 100644
--- a/src/main/java/com/fr/plugin/easyslides/EasySlidesWidget.java
+++ b/src/main/java/com/fr/plugin/easyslides/EasySlidesWidget.java
@@ -27,6 +27,8 @@ import static com.fr.plugin.easyslides.Util.colorValueToHexString;
public class EasySlidesWidget extends DirectWriteEditor implements DataControl {
public static final String BACKGROUND_COLOR = "backgroundColor";
+ public static final String SLIDE_BACKGROUND_COLOR = "slideBackgroundColor";
+ public static final String SLIDE_FONT_COLOR = "slideFontColor";
public static final String AUTO_PLAY = "autoPlay";
public static final String AUTO_PLAY_INTERVAL_TIME = "autoPlayIntervalTime";
public static final String SLIDE_STYLE = "slideStyle";
@@ -36,6 +38,8 @@ public class EasySlidesWidget extends DirectWriteEditor implements DataControl {
private ValueInitializer widgetValue;
private Object backgroundColor;
+ private Object slideBackgroundColor;
+ private Object slideFontColor;
private boolean autoPlay;
private int autoPlayIntervalTime;
private String slideStyle;
@@ -48,6 +52,8 @@ public class EasySlidesWidget extends DirectWriteEditor implements DataControl {
//autoPlay = true;
setAutoPlayIntervalTime(5);
backgroundColor = new Color(215, 215, 215);
+ slideBackgroundColor = new Color(255, 255, 255);
+ slideFontColor = new Color(102, 102, 102);
slideStyle = SlideStyleEditor.DEFAULT_STYLE;
}
@@ -59,6 +65,22 @@ public class EasySlidesWidget extends DirectWriteEditor implements DataControl {
this.backgroundColor = backgroundColor;
}
+ public Object getSlideBackgroundColor() {
+ return slideBackgroundColor;
+ }
+
+ public void setSlideBackgroundColor(Object slideBackgroundColor) {
+ this.slideBackgroundColor = slideBackgroundColor;
+ }
+
+ public Object getSlideFontColor() {
+ return slideFontColor;
+ }
+
+ public void setSlideFontColor(Object slideFontColor) {
+ this.slideFontColor = slideFontColor;
+ }
+
public boolean isAutoPlay() {
return autoPlay;
}
@@ -189,6 +211,8 @@ public class EasySlidesWidget extends DirectWriteEditor implements DataControl {
jsonConfig.put("value", html);
}
jsonConfig.put(BACKGROUND_COLOR, colorValueToHexString(getBackgroundColor()));
+ jsonConfig.put(SLIDE_BACKGROUND_COLOR, colorValueToHexString(getSlideBackgroundColor()));
+ jsonConfig.put(SLIDE_FONT_COLOR, colorValueToHexString(getSlideFontColor()));
jsonConfig.put(TOOLBAR, isToolBar());
jsonConfig.put(PROGRESSBAR, isProgressBar());
jsonConfig.put(PROGRESS, isProgress());
@@ -220,6 +244,12 @@ public class EasySlidesWidget extends DirectWriteEditor implements DataControl {
if ((color = reader.getAttrAsInt(BACKGROUND_COLOR, -1)) != -1) {
setBackgroundColor(new Color(color));
}
+ if ((color = reader.getAttrAsInt(SLIDE_BACKGROUND_COLOR, -1)) != -1) {
+ setSlideBackgroundColor(new Color(color));
+ }
+ if ((color = reader.getAttrAsInt(SLIDE_FONT_COLOR, -1)) != -1) {
+ setSlideFontColor(new Color(color));
+ }
setAutoPlayIntervalTime(reader.getAttrAsInt(AUTO_PLAY_INTERVAL_TIME, 0));
setToolBar(reader.getAttrAsBoolean(TOOLBAR, false));
setProgressBar(reader.getAttrAsBoolean(PROGRESSBAR, false));
@@ -237,6 +267,8 @@ public class EasySlidesWidget extends DirectWriteEditor implements DataControl {
writer.startTAG("EasySlidesAttr");
writer.attr(SLIDE_STYLE, getSlideStyle());
writer.attr(BACKGROUND_COLOR, ((Color) getBackgroundColor()).getRGB());
+ writer.attr(SLIDE_BACKGROUND_COLOR, ((Color) getSlideBackgroundColor()).getRGB());
+ writer.attr(SLIDE_FONT_COLOR, ((Color) getSlideFontColor()).getRGB());
writer.attr(AUTO_PLAY_INTERVAL_TIME, getAutoPlayIntervalTime());
writer.attr(TOOLBAR, isToolBar());
writer.attr(PROGRESSBAR, isProgressBar());
diff --git a/src/main/java/com/fr/plugin/easyslides/images/display.png b/src/main/java/com/fr/plugin/easyslides/images/display.png
index fe809b2b0efe27b25b77ef1ba2604a7fa43b2ca2..f106d3808260d6e7fd70a81c40d388098b09a4bd 100644
GIT binary patch
literal 8309
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
TPek!mci@St&f_{|o2dT<^W}{y
literal 7000
zcmV-e8>i%nP)>{2^AHEMR?*-
zP+?biiedr<->$3yMCI{JM@4<;dHOiJN0cNAW`QRvC@UC1f|3ylGlWS@*!tbBJ5$qB
zRUK!#d#3-Kd#J9euDRd+{$IGM+Eb99S1P5Yl0+?p$0I38<=0{ux=%3=lc=Rg5}=mD
zQ;?UNa4{fd!(#ESnj@Z^J?5F}M`>1TDL#LUl=K>5o=HqpDFITpeJS4M(_^ZrSRqje
z5)lDvvx0*~yb~cJ0@QhFaLkln()CIy8vNfPscGh!YD7_iq%NPKLQ$wtgy=tBN_q@2
z&%_oH5y1P^T=9PXy!pu)F;!M95CK7gK{QDeaSlKjNL@5Vq~NG|#s^$p(V)MWpK2+p
zmn_zCD8Vm?6XPtVM$!3X23`5g=*xv4bOt!X!b+1V}1Beo%=FkYM1X
zka`>;5x`FQNyWz&b{?Vl;=7El=UDTTJ3<-?_AY%msr)ztibmm9cvrn*9tB3w1i<<|
z#}AsHlFE-KK!U9aB$Xd$FqB_>R(b3X)(Zqh0Q#~1)}KWD
zL4^W~7x3)gP*=m`B0El>q*UUs-%fBEDhKQ=r~}
zD*=*;Ut%JZ-hd+kNdBxyy8gsLg@GZXH{doK=|});^2dCB5(xxCfF%qtCG7-90$AO@
zTFj9|LZP_-IP=JW;RT%Fngf)C
zS}JK7^~^Jgg`$FdDK06g&_HfLR&Pp*!TWUcOk%;%sgl)Shjy?ffExWWA>^g*r=Q+M{(bCNDK0LSjKB3ObN^0L#I^*e^ZaFHIY4pOL9*xkd*$g_v*hzH
zR!Dw+e$bW_YtSHd>eP|Wojc2aJ~UOjcI_%DhGkRiP-1uq%FjRlERWB4LVo$>7ddg_
zL_*1%o}MljUv!~No-|2XZTN?zuAS$*XoPV!W9SE40$5$gk-JvNjHmx9^XI=KnVFf&
z6C@I7l)St=>C~x{Jpb%7$|FDuf2DFC%EsdFy89m4ym_-^WMm|a@-?vhqeqX*h!Ml(
zp~?44!{;wFuh@ryfJxx|g-c}V()Xod!-ff`e1HN`*4aA;@G0xe{3sfS2
zbpR-*)0I+KSSX$ZwtfvC0SqfYc1*>3eNHQzb6n$|nm_<_hVF7Y4l>U$x?6c(z*V!m
zd-}Q)iQgPPloXdrp