forked from fanruan/design
mengao
7 years ago
38 changed files with 332 additions and 106 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; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,103 @@
|
||||
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