|
|
@ -2,6 +2,8 @@ package com.fr.plugin.chart.designer.component; |
|
|
|
|
|
|
|
|
|
|
|
import com.fr.base.chart.BasePlot; |
|
|
|
import com.fr.base.chart.BasePlot; |
|
|
|
import com.fr.chart.chartattr.Plot; |
|
|
|
import com.fr.chart.chartattr.Plot; |
|
|
|
|
|
|
|
import com.fr.design.event.UIObserver; |
|
|
|
|
|
|
|
import com.fr.design.event.UIObserverListener; |
|
|
|
import com.fr.design.gui.controlpane.UIListControlPane; |
|
|
|
import com.fr.design.gui.controlpane.UIListControlPane; |
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
@ -16,6 +18,8 @@ import com.fr.plugin.chart.designer.TableLayout4VanChartHelper; |
|
|
|
import com.fr.stable.Nameable; |
|
|
|
import com.fr.stable.Nameable; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
import javax.swing.*; |
|
|
|
|
|
|
|
import javax.swing.event.ChangeEvent; |
|
|
|
|
|
|
|
import javax.swing.event.ChangeListener; |
|
|
|
import java.awt.*; |
|
|
|
import java.awt.*; |
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
import java.awt.event.ActionListener; |
|
|
|
import java.awt.event.ActionListener; |
|
|
@ -24,16 +28,67 @@ import java.awt.event.ActionListener; |
|
|
|
* Created by mengao on 2017/9/8. |
|
|
|
* Created by mengao on 2017/9/8. |
|
|
|
* 新图表UIListControlPane,基础面板。 |
|
|
|
* 新图表UIListControlPane,基础面板。 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public abstract class VanChartUIListControlPane extends UIListControlPane { |
|
|
|
public abstract class VanChartUIListControlPane extends UIListControlPane implements UIObserver { |
|
|
|
|
|
|
|
private UIObserverListener uiObserverListener; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public VanChartUIListControlPane() { |
|
|
|
public VanChartUIListControlPane() { |
|
|
|
super(); |
|
|
|
super(); |
|
|
|
this.setBorder(null); |
|
|
|
this.setBorder(null); |
|
|
|
|
|
|
|
iniListener(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public VanChartUIListControlPane(BasePlot plot) { |
|
|
|
public VanChartUIListControlPane(BasePlot plot) { |
|
|
|
super(plot); |
|
|
|
super(plot); |
|
|
|
this.setBorder(null); |
|
|
|
this.setBorder(null); |
|
|
|
|
|
|
|
iniListener(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 注册观察者监听事件 |
|
|
|
|
|
|
|
* @param listener 观察者监听事件 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void registerChangeListener(UIObserverListener listener) { |
|
|
|
|
|
|
|
uiObserverListener = listener; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public boolean shouldResponseChangeListener() { |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void iniListener() { |
|
|
|
|
|
|
|
if (shouldResponseChangeListener()) { |
|
|
|
|
|
|
|
this.addChangeListener(new ChangeListener() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void stateChanged(ChangeEvent e) { |
|
|
|
|
|
|
|
if (uiObserverListener == null) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
uiObserverListener.doChange(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void fireChanged() { |
|
|
|
|
|
|
|
Object[] listeners = listenerList.getListenerList(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = listeners.length - 2; i >= 0; i -= 2) { |
|
|
|
|
|
|
|
if (listeners[i] == ChangeListener.class) { |
|
|
|
|
|
|
|
((ChangeListener) listeners[i + 1]).stateChanged(new ChangeEvent(this)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 增加监听事件 |
|
|
|
|
|
|
|
* @param l 监听的对象 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public void addChangeListener(ChangeListener l) { |
|
|
|
|
|
|
|
this.listenerList.add(ChangeListener.class, l); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
@ -55,7 +110,7 @@ public abstract class VanChartUIListControlPane extends UIListControlPane { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
update((Plot) plot); |
|
|
|
update((Plot) plot); |
|
|
|
DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); |
|
|
|
fireChanged();//图表属性改变,响应事件
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected abstract void update(Plot plot); |
|
|
|
protected abstract void update(Plot plot); |
|
|
|