forked from fanruan/design
plough
7 years ago
62 changed files with 550 additions and 449 deletions
@ -0,0 +1,50 @@
|
||||
package com.fr.plugin.chart.designer.style.series; |
||||
|
||||
import com.fr.chart.chartglyph.ConditionAttr; |
||||
import com.fr.design.beans.BasicBeanPane; |
||||
import com.fr.design.gui.controlpane.UnrepeatedNameHelper; |
||||
import com.fr.general.FRLogger; |
||||
import com.fr.general.NameObject; |
||||
import com.fr.plugin.chart.base.AttrSeriesStackAndAxis; |
||||
import com.fr.plugin.chart.designer.style.background.ChartNameObjectCreator; |
||||
import com.fr.stable.Nameable; |
||||
|
||||
import java.lang.reflect.Constructor; |
||||
import java.lang.reflect.InvocationTargetException; |
||||
|
||||
/** |
||||
* Created by mengao on 2017/9/11. |
||||
*/ |
||||
public class StackedAndAxisNameObjectCreator extends ChartNameObjectCreator { |
||||
|
||||
public StackedAndAxisNameObjectCreator(Object object, String menuName, Class clazz, Class<? extends BasicBeanPane> updatePane) { |
||||
super(object, menuName, clazz, updatePane); |
||||
} |
||||
|
||||
/** |
||||
* create Nameable |
||||
* |
||||
* @param helper |
||||
* @return |
||||
*/ |
||||
public Nameable createNameable(UnrepeatedNameHelper helper) { |
||||
Constructor<? extends ConditionAttr> constructor = null; |
||||
try { |
||||
constructor = clazzOfInitCase.getConstructor(); |
||||
ConditionAttr conditionAttr = constructor.newInstance(); |
||||
conditionAttr.addDataSeriesCondition((AttrSeriesStackAndAxis) object); |
||||
return new NameObject(helper.createUnrepeatedName(this.menuName()), conditionAttr); |
||||
|
||||
} catch (NoSuchMethodException e) { |
||||
FRLogger.getLogger().error(e.getMessage(), e); |
||||
} catch (IllegalAccessException e) { |
||||
FRLogger.getLogger().error(e.getMessage(), e); |
||||
} catch (InstantiationException e) { |
||||
FRLogger.getLogger().error(e.getMessage(), e); |
||||
} catch (InvocationTargetException e) { |
||||
FRLogger.getLogger().error(e.getMessage(), e); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -1,111 +0,0 @@
|
||||
package com.fr.plugin.chart.designer.style.series; |
||||
|
||||
import com.fr.chart.chartglyph.ConditionAttr; |
||||
import com.fr.chart.chartglyph.ConditionCollection; |
||||
import com.fr.design.beans.BasicBeanPane; |
||||
import com.fr.design.gui.frpane.UICorrelationComboBoxPane; |
||||
import com.fr.design.gui.imenutable.UIMenuNameableCreator; |
||||
import com.fr.general.Inter; |
||||
import com.fr.plugin.chart.attr.DefaultAxisHelper; |
||||
import com.fr.plugin.chart.attr.axis.VanChartAxis; |
||||
import com.fr.plugin.chart.attr.plot.VanChartRectanglePlot; |
||||
import com.fr.plugin.chart.base.AttrSeriesStackAndAxis; |
||||
import com.fr.plugin.chart.column.VanChartCustomStackAndAxisConditionPane; |
||||
import com.fr.plugin.chart.designer.TableLayout4VanChartHelper; |
||||
import com.fr.plugin.chart.designer.component.VanChartUIMenuNameableCreator; |
||||
|
||||
import javax.swing.*; |
||||
import java.awt.*; |
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* Created by Fangjie on 2016/4/28. |
||||
*/ |
||||
public class VanChartCustomStackAndAxisEditPane extends BasicBeanPane<VanChartRectanglePlot> { |
||||
//堆积和坐标轴
|
||||
protected UICorrelationComboBoxPane stackAndAxisPane; |
||||
protected JPanel stackAndAxisWholePane; |
||||
|
||||
public VanChartCustomStackAndAxisEditPane() { |
||||
|
||||
initStackedAndAxisPane(); |
||||
|
||||
initContentPane(); |
||||
} |
||||
|
||||
private void initContentPane() { |
||||
this.setLayout(new BorderLayout(0, 5)); |
||||
this.add(stackAndAxisWholePane, BorderLayout.CENTER); |
||||
} |
||||
|
||||
//堆积和坐标轴设置(自定义柱形图等用到)
|
||||
protected JPanel initStackedAndAxisPane() { |
||||
stackAndAxisPane = new UICorrelationComboBoxPane(); |
||||
stackAndAxisWholePane = TableLayout4VanChartHelper.createExpandablePaneWithTitle(getPaneTitle(), stackAndAxisPane); |
||||
return stackAndAxisWholePane; |
||||
} |
||||
@Override |
||||
public void populateBean(VanChartRectanglePlot plot) { |
||||
java.util.List<VanChartAxis> xAxisList = plot.getXAxisList(); |
||||
java.util.List<VanChartAxis> yAxisList = plot.getYAxisList(); |
||||
String[] axisXNames = DefaultAxisHelper.getAxisNames(xAxisList); |
||||
String[] axisYNames = DefaultAxisHelper.getAxisNames(yAxisList); |
||||
|
||||
java.util.List<UIMenuNameableCreator> menuList = new ArrayList<UIMenuNameableCreator>(); |
||||
ConditionAttr demo = new ConditionAttr(); |
||||
AttrSeriesStackAndAxis seriesStackAndAxis = new AttrSeriesStackAndAxis(); |
||||
seriesStackAndAxis.setXAxisNamesArray(axisXNames); |
||||
seriesStackAndAxis.setYAxisNameArray(axisYNames); |
||||
demo.addDataSeriesCondition(seriesStackAndAxis); |
||||
menuList.add(new VanChartUIMenuNameableCreator(getPaneTitle(), demo, getStackAndAxisPaneClass())); |
||||
stackAndAxisPane.refreshMenuAndAddMenuAction(menuList); |
||||
|
||||
java.util.List<UIMenuNameableCreator> list = new ArrayList<UIMenuNameableCreator>(); |
||||
|
||||
ConditionCollection stackAndAxisCondition = plot.getStackAndAxisCondition(); |
||||
|
||||
for(int i = 0, len = stackAndAxisCondition.getConditionAttrSize(); i < len; i++){ |
||||
ConditionAttr conditionAttr = stackAndAxisCondition.getConditionAttr(i); |
||||
AttrSeriesStackAndAxis stackAndAxis = (AttrSeriesStackAndAxis)conditionAttr.getExisted(AttrSeriesStackAndAxis.class); |
||||
stackAndAxis.setXAxisNamesArray(axisXNames); |
||||
stackAndAxis.setYAxisNameArray(axisYNames); |
||||
list.add(new VanChartUIMenuNameableCreator(conditionAttr.getName(), conditionAttr, getStackAndAxisPaneClass())); |
||||
} |
||||
|
||||
stackAndAxisPane.populateBean(list); |
||||
stackAndAxisPane.doLayout(); |
||||
} |
||||
|
||||
@Override |
||||
public VanChartRectanglePlot updateBean() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void updateBean(VanChartRectanglePlot plot){ |
||||
ConditionCollection stackAndAxisCondition = plot.getStackAndAxisCondition(); |
||||
stackAndAxisCondition.clearConditionAttr(); |
||||
|
||||
java.util.List<UIMenuNameableCreator> list = stackAndAxisPane.updateBean(); |
||||
for(UIMenuNameableCreator creator : list){ |
||||
ConditionAttr conditionAttr = (ConditionAttr)creator.getObj(); |
||||
conditionAttr.setName(creator.getName()); |
||||
AttrSeriesStackAndAxis seriesStackAndAxis = (AttrSeriesStackAndAxis)conditionAttr.getExisted(AttrSeriesStackAndAxis.class); |
||||
seriesStackAndAxis.setStackID(creator.getName()); |
||||
stackAndAxisCondition.addConditionAttr(conditionAttr); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
protected String title4PopupWindow() { |
||||
return null; |
||||
} |
||||
|
||||
protected Class<? extends BasicBeanPane> getStackAndAxisPaneClass() { |
||||
return VanChartCustomStackAndAxisConditionPane.class; |
||||
} |
||||
|
||||
protected String getPaneTitle(){ |
||||
return Inter.getLocText("Plugin-ChartF_StackAndSeries"); |
||||
} |
||||
} |
@ -0,0 +1,104 @@
|
||||
package com.fr.plugin.chart.designer.style.series; |
||||
|
||||
import com.fr.chart.chartattr.Plot; |
||||
import com.fr.chart.chartglyph.ConditionAttr; |
||||
import com.fr.chart.chartglyph.ConditionCollection; |
||||
import com.fr.design.beans.BasicBeanPane; |
||||
import com.fr.design.gui.controlpane.NameableCreator; |
||||
import com.fr.design.gui.controlpane.ShortCut4JControlPane; |
||||
import com.fr.general.Inter; |
||||
import com.fr.general.NameObject; |
||||
import com.fr.plugin.chart.attr.DefaultAxisHelper; |
||||
import com.fr.plugin.chart.attr.axis.VanChartAxis; |
||||
import com.fr.plugin.chart.attr.plot.VanChartRectanglePlot; |
||||
import com.fr.plugin.chart.base.AttrSeriesStackAndAxis; |
||||
import com.fr.plugin.chart.column.VanChartCustomStackAndAxisConditionPane; |
||||
import com.fr.plugin.chart.designer.component.VanChartUIListControlPane; |
||||
import com.fr.stable.Nameable; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* Created by mengao on 2017/9/11. |
||||
* 堆积和坐标轴面板 |
||||
*/ |
||||
public class VanChartStackedAndAxisListControlPane extends VanChartUIListControlPane { |
||||
|
||||
|
||||
@Override |
||||
public NameableCreator[] createNameableCreators() { |
||||
return new StackedAndAxisNameObjectCreator[]{new StackedAndAxisNameObjectCreator(new AttrSeriesStackAndAxis(), getPaneTitle(), ConditionAttr.class, getStackAndAxisPaneClass())}; |
||||
} |
||||
|
||||
@Override |
||||
protected String title4PopupWindow() { |
||||
return Inter.getLocText("Plugin-ChartF_StackAndSeries"); |
||||
} |
||||
|
||||
protected String getAddItemText() { |
||||
return Inter.getLocText("Plugin-ChartF_Add"); |
||||
} |
||||
|
||||
protected ShortCut4JControlPane[] createShortcuts() { |
||||
return new ShortCut4JControlPane[]{ |
||||
moveUpItemShortCut(), |
||||
moveDownItemShortCut(), |
||||
removeItemShortCut() |
||||
}; |
||||
} |
||||
|
||||
public void populate(VanChartRectanglePlot plot) { |
||||
this.plot = plot; |
||||
java.util.List<VanChartAxis> xAxisList = plot.getXAxisList(); |
||||
java.util.List<VanChartAxis> yAxisList = plot.getYAxisList(); |
||||
String[] axisXNames = DefaultAxisHelper.getAxisNames(xAxisList); |
||||
String[] axisYNames = DefaultAxisHelper.getAxisNames(yAxisList); |
||||
|
||||
java.util.List<StackedAndAxisNameObjectCreator> menuList = new ArrayList<StackedAndAxisNameObjectCreator>(); |
||||
AttrSeriesStackAndAxis seriesStackAndAxis = new AttrSeriesStackAndAxis(); |
||||
seriesStackAndAxis.setXAxisNamesArray(axisXNames); |
||||
seriesStackAndAxis.setYAxisNameArray(axisYNames); |
||||
menuList.add(new StackedAndAxisNameObjectCreator(seriesStackAndAxis, getPaneTitle(), ConditionAttr.class, getStackAndAxisPaneClass())); |
||||
|
||||
refreshNameableCreator(menuList.toArray(new StackedAndAxisNameObjectCreator[menuList.size()])); |
||||
|
||||
java.util.List<NameObject> nameObjects = new ArrayList<NameObject>(); |
||||
|
||||
ConditionCollection stackAndAxisCondition = plot.getStackAndAxisCondition(); |
||||
|
||||
for (int i = 0, len = stackAndAxisCondition.getConditionAttrSize(); i < len; i++) { |
||||
ConditionAttr conditionAttr = stackAndAxisCondition.getConditionAttr(i); |
||||
AttrSeriesStackAndAxis stackAndAxis = (AttrSeriesStackAndAxis) conditionAttr.getExisted(AttrSeriesStackAndAxis.class); |
||||
stackAndAxis.setXAxisNamesArray(axisXNames); |
||||
stackAndAxis.setYAxisNameArray(axisYNames); |
||||
nameObjects.add(new NameObject(conditionAttr.getName(), conditionAttr)); |
||||
} |
||||
|
||||
populate(nameObjects.toArray(new NameObject[nameObjects.size()])); |
||||
doLayout(); |
||||
} |
||||
|
||||
@Override |
||||
protected void update(Plot plot) { |
||||
VanChartRectanglePlot rectanglePlot = (VanChartRectanglePlot) plot; |
||||
ConditionCollection stackAndAxisCondition = rectanglePlot.getStackAndAxisCondition(); |
||||
stackAndAxisCondition.clearConditionAttr(); |
||||
|
||||
Nameable[] nameables = this.update(); |
||||
for (Nameable nameable : nameables) { |
||||
ConditionAttr conditionAttr = (ConditionAttr) ((NameObject) nameable).getObject(); |
||||
conditionAttr.setName(nameable.getName()); |
||||
AttrSeriesStackAndAxis seriesStackAndAxis = (AttrSeriesStackAndAxis) conditionAttr.getExisted(AttrSeriesStackAndAxis.class); |
||||
seriesStackAndAxis.setStackID(nameable.getName()); |
||||
stackAndAxisCondition.addConditionAttr(conditionAttr); |
||||
} |
||||
} |
||||
|
||||
protected Class<? extends BasicBeanPane> getStackAndAxisPaneClass() { |
||||
return VanChartCustomStackAndAxisConditionPane.class; |
||||
} |
||||
|
||||
public String getPaneTitle() { |
||||
return Inter.getLocText("Plugin-ChartF_StackAndSeries"); |
||||
} |
||||
} |
Loading…
Reference in new issue