forked from fanruan/design
zheng
5 years ago
8 changed files with 304 additions and 65 deletions
@ -0,0 +1,84 @@ |
|||||||
|
package com.fr.design.chart.fun.impl; |
||||||
|
|
||||||
|
import com.fr.chart.chartattr.Plot; |
||||||
|
import com.fr.design.beans.BasicBeanPane; |
||||||
|
import com.fr.design.chart.fun.ChartTypeUIProvider; |
||||||
|
import com.fr.design.chartx.impl.AbstractDataPane; |
||||||
|
import com.fr.design.chartx.impl.AbstractOtherPane; |
||||||
|
import com.fr.design.condition.ConditionAttributesPane; |
||||||
|
import com.fr.design.gui.frpane.AttributeChangeListener; |
||||||
|
import com.fr.design.mainframe.chart.ChartEditPane; |
||||||
|
import com.fr.design.mainframe.chart.ChartsConfigPane; |
||||||
|
import com.fr.design.mainframe.chart.gui.ChartDataPane; |
||||||
|
import com.fr.design.mainframe.chart.gui.ChartStylePane; |
||||||
|
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane; |
||||||
|
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane; |
||||||
|
import com.fr.stable.fun.impl.AbstractProvider; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by shine on 2019/09/03. |
||||||
|
*/ |
||||||
|
public abstract class AbstractChartTypeUI extends AbstractProvider implements ChartTypeUIProvider { |
||||||
|
|
||||||
|
@Override |
||||||
|
public abstract AbstractDataPane getChartDataPane(AttributeChangeListener listener); |
||||||
|
|
||||||
|
@Override |
||||||
|
public abstract AbstractOtherPane[] getAttrPaneArray(AttributeChangeListener listener); |
||||||
|
|
||||||
|
@Override |
||||||
|
public String[] getSubName() { |
||||||
|
return new String[]{getName()}; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean needChartChangePane() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isUseDefaultPane() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int currentAPILevel() { |
||||||
|
return CURRENT_API_LEVEL; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String mark4Provider() { |
||||||
|
return getClass().getName(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ChartEditPane getChartEditPane(String plotID) { |
||||||
|
return new ChartEditPane(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ConditionAttributesPane getPlotConditionPane(Plot plot) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ChartsConfigPane getChartConfigPane(String plotID) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,21 +0,0 @@ |
|||||||
package com.fr.design.chartx; |
|
||||||
|
|
||||||
import com.fr.design.chartx.fields.diff.MultiPieCellDataFieldsPane; |
|
||||||
import com.fr.design.chartx.fields.diff.MultiPieDataSetFieldsPane; |
|
||||||
import com.fr.design.chartx.single.SingleDataPane; |
|
||||||
import com.fr.design.gui.frpane.AttributeChangeListener; |
|
||||||
|
|
||||||
/** |
|
||||||
* Created by shine on 2019/6/18. |
|
||||||
*/ |
|
||||||
public class MultiPieChartDataPane extends MultiCategoryChartDataPane { |
|
||||||
|
|
||||||
public MultiPieChartDataPane(AttributeChangeListener listener) { |
|
||||||
super(listener); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
protected SingleDataPane createSingleDataPane() { |
|
||||||
return new SingleDataPane(new MultiPieDataSetFieldsPane(), new MultiPieCellDataFieldsPane()); |
|
||||||
} |
|
||||||
} |
|
@ -1,20 +0,0 @@ |
|||||||
package com.fr.design.chartx; |
|
||||||
|
|
||||||
import com.fr.design.chartx.fields.diff.WordCloudCellDataFieldsPane; |
|
||||||
import com.fr.design.chartx.fields.diff.WordCloudDataSetFieldsPane; |
|
||||||
import com.fr.design.chartx.single.SingleDataPane; |
|
||||||
import com.fr.design.gui.frpane.AttributeChangeListener; |
|
||||||
|
|
||||||
/** |
|
||||||
* Created by shine on 2019/5/22. |
|
||||||
*/ |
|
||||||
public class WordCloudChartDataPane extends MultiCategoryChartDataPane { |
|
||||||
public WordCloudChartDataPane(AttributeChangeListener listener) { |
|
||||||
super(listener); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
protected SingleDataPane createSingleDataPane() { |
|
||||||
return new SingleDataPane(new WordCloudDataSetFieldsPane(), new WordCloudCellDataFieldsPane()); |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,68 @@ |
|||||||
|
package com.fr.design.chartx.impl; |
||||||
|
|
||||||
|
import com.fr.chart.chartattr.ChartCollection; |
||||||
|
import com.fr.chart.impl.AbstractChartWithData; |
||||||
|
import com.fr.chartx.data.AbstractDataDefinition; |
||||||
|
import com.fr.chartx.data.ChartDataDefinitionProvider; |
||||||
|
import com.fr.design.chartx.single.SingleDataPane; |
||||||
|
import com.fr.design.gui.frpane.AttributeChangeListener; |
||||||
|
import com.fr.design.mainframe.chart.gui.ChartDataPane; |
||||||
|
import com.fr.plugin.chart.vanchart.VanChart; |
||||||
|
|
||||||
|
import javax.swing.JPanel; |
||||||
|
import java.awt.BorderLayout; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by shine on 2019/09/04. |
||||||
|
*/ |
||||||
|
public abstract class AbstractDataPane extends ChartDataPane { |
||||||
|
|
||||||
|
private SingleDataPane singleDataPane; |
||||||
|
|
||||||
|
public AbstractDataPane(AttributeChangeListener listener) { |
||||||
|
super(listener); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected JPanel createContentPane() { |
||||||
|
singleDataPane = createSingleDataPane(); |
||||||
|
return singleDataPane; |
||||||
|
} |
||||||
|
|
||||||
|
protected abstract SingleDataPane createSingleDataPane(); |
||||||
|
|
||||||
|
@Override |
||||||
|
public void populate(ChartCollection collection) { |
||||||
|
if (collection == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class); |
||||||
|
if (chart == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
this.removeAll(); |
||||||
|
this.add(createContentPane(), BorderLayout.CENTER); |
||||||
|
|
||||||
|
ChartDataDefinitionProvider dataDefinition = chart.getChartDataDefinition(); |
||||||
|
|
||||||
|
singleDataPane.populateBean((AbstractDataDefinition) dataDefinition); |
||||||
|
|
||||||
|
this.initAllListeners(); |
||||||
|
this.validate(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void update(ChartCollection collection) { |
||||||
|
if (collection == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
VanChart chart = collection.getSelectedChart(VanChart.class); |
||||||
|
if (chart == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
chart.setChartDataDefinition(singleDataPane.updateBean()); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
package com.fr.design.chartx.impl; |
||||||
|
|
||||||
|
import com.fr.chart.chartattr.ChartCollection; |
||||||
|
import com.fr.chart.impl.AbstractChartWithData; |
||||||
|
import com.fr.design.mainframe.chart.AbstractChartAttrPane; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by shine on 2019/09/04. |
||||||
|
*/ |
||||||
|
public abstract class AbstractOtherPane<T extends AbstractChartWithData> extends AbstractChartAttrPane { |
||||||
|
|
||||||
|
protected abstract void populate(T chart); |
||||||
|
|
||||||
|
protected abstract void update(T chart); |
||||||
|
|
||||||
|
@Override |
||||||
|
public void populate(ChartCollection collection) { |
||||||
|
if (collection == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class); |
||||||
|
if (chart == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
populate((T) chart); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void update(ChartCollection collection) { |
||||||
|
|
||||||
|
if (collection == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class); |
||||||
|
if (chart == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
update((T) chart); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,79 @@ |
|||||||
|
package com.fr.design.chartx.impl; |
||||||
|
|
||||||
|
import com.fr.chart.charttypes.ChartTypeManager; |
||||||
|
import com.fr.chart.impl.AbstractChartWithData; |
||||||
|
import com.fr.chartx.attr.ChartProvider; |
||||||
|
import com.fr.design.ChartTypeInterfaceManager; |
||||||
|
import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; |
||||||
|
import com.fr.design.mainframe.chart.gui.type.ChartImagePane; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by shine on 2019/09/04. |
||||||
|
*/ |
||||||
|
public class CommonTypePane<T extends AbstractChartWithData> extends AbstractChartTypePane<AbstractChartWithData> { |
||||||
|
|
||||||
|
@Override |
||||||
|
protected String[] getTypeIconPath() { |
||||||
|
return new String[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected String[] getTypeTipName() { |
||||||
|
return ChartTypeInterfaceManager.getInstance().getSubName(getPlotID()); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ChartProvider getDefaultChart() { |
||||||
|
return ChartTypeManager.getInstance().getChartTypes(getPlotID())[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String title4PopupWindow() { |
||||||
|
return ChartTypeInterfaceManager.getInstance().getName(getPlotID()); |
||||||
|
} |
||||||
|
|
||||||
|
protected int getSelectIndexInChart(T chart) { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
protected void setSelectIndexInChart(T chart, int index) { |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void populateBean(AbstractChartWithData ob) { |
||||||
|
if (getTypeIconPath().length > 0) { |
||||||
|
for (ChartImagePane imagePane : typeDemo) { |
||||||
|
imagePane.isPressing = false; |
||||||
|
} |
||||||
|
typeDemo.get(getSelectIndexInChart((T) ob)).isPressing = true; |
||||||
|
checkDemosBackground(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void updateBean(AbstractChartWithData ob) { |
||||||
|
if (getTypeIconPath().length > 0) { |
||||||
|
for (int index = 0, len = typeDemo.size(); index < len; index++) { |
||||||
|
if (typeDemo.get(index).isPressing) { |
||||||
|
setSelectIndexInChart((T) ob, index); |
||||||
|
return; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected String[] getTypeLayoutPath() { |
||||||
|
return new String[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected String[] getTypeLayoutTipName() { |
||||||
|
return new String[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected String getPlotTypeID() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue