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