Saturday, December 10, 2022

Zkoss Framework JFree Chart - II [ Bar ]

 Bar 


Source :

1. File Zul :

1.1. bar_chart.zul

<vlayout apply="org.zkoss.bind.BindComposer"
    viewModel="@id('vm') @init('demo.chart.bar.BarChartVM')">
    <chart id="mybarchart" width="520" height="400"
        fgAlpha="255" paneColor="#ffffff" bgColor="#ffffff" type="bar"
        threeD="@bind(vm.threeD)" orient="@bind(vm.orient)"
        model="@bind(vm.model)" engine="@bind(vm.engine)"/>
</vlayout>

1.2. bar_chart_Ctrl.zul

<vlayout apply="org.zkoss.bind.BindComposer">
    <groupbox closable="false" sclass="z-demo-config">
        <caption label="Type Control" />
        <vlayout>
            <checkbox label="Toggle 3D Bar Chart" checked="false"
                onCheck="@global-command('configChanged', threeD=self.checked)"/>
            <checkbox label="Horizontal" checked="true"
                onCheck="@global-command('configChanged', orient=self.checked?'horizontal':'vertical')"/>
        </vlayout>
    </groupbox>
</vlayout>

2. View Model :

package demo.chart.bar;
 
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.GlobalCommand;
import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zul.CategoryModel;
 
public class BarChartVM {
 
    BarChartEngine engine;
    CategoryModel model;
    boolean threeD = false;
    String orient = "horizontal";
 
    @Init
    public void init() {
        // prepare chart data
        engine = new BarChartEngine();
        model = ChartData.getModel();
    }
 
    public BarChartEngine getEngine() {
        return engine;
    }
 
    public CategoryModel getModel() {
        return model;
    }
 
    public String getOrient() {
        return orient;
    }
 
    public boolean isThreeD() {
        return threeD;
    }
     
    @GlobalCommand("configChanged")
    @NotifyChange({"threeD","orient"})
    public void onConfigChanged(
            @BindingParam("threeD") Boolean threeD,
            @BindingParam("orient") String orient){
        if(threeD != null){
            this.threeD = threeD;
        }
        if(orient != null){
            this.orient = orient;
        }
    }
}


3. Model :

3.1. ChartData.java

package demo.chart.bar;
 
import java.util.Calendar;
 
import org.zkoss.zul.CategoryModel;
import org.zkoss.zul.SimpleCategoryModel;
 
public class ChartData {
 
    public static CategoryModel getModel(){
        int year = Calendar.getInstance().get(Calendar.YEAR) + 1900;
        CategoryModel model = new SimpleCategoryModel();
        model.setValue(Integer.toString(year - 2), "Q1", new Integer(17));
        model.setValue(Integer.toString(year - 2), "Q2", new Integer(36));
        model.setValue(Integer.toString(year - 2), "Q3", new Integer(39));
        model.setValue(Integer.toString(year - 2), "Q4", new Integer(49));
        model.setValue(Integer.toString(year - 1), "Q1", new Integer(20));
        model.setValue(Integer.toString(year - 1), "Q2", new Integer(35));
        model.setValue(Integer.toString(year - 1), "Q3", new Integer(40));
        model.setValue(Integer.toString(year - 1), "Q4", new Integer(55));
        model.setValue(Integer.toString(year), "Q1", new Integer(40));
        model.setValue(Integer.toString(year), "Q2", new Integer(60));
        model.setValue(Integer.toString(year), "Q3", new Integer(70));
        model.setValue(Integer.toString(year), "Q4", new Integer(90));
        return model;
    }
}


3.2. ChartColor.java

package demo.chart;
 
import java.awt.Color;
 
import org.apache.commons.lang.StringUtils;
 
public class ChartColors {
    //main colors
    public static Color COLOR_1 = new Color(0x3E454C);
    public static Color COLOR_2 = new Color(0x2185C5);
    public static Color COLOR_3 = new Color(0x7ECEFD);
    public static Color COLOR_4 = new Color(0xFFF6E5);
    public static Color COLOR_5 = new Color(0xFF7F66);
    //additional colors
    public static Color COLOR_6 = new Color(0x98D9FF);
    public static Color COLOR_7 = new Color(0x4689B1);
    public static Color COLOR_8 = new Color(0xB17C35);
    public static Color COLOR_9 = new Color(0xFDC77E);
     
    public static String toHtmlColor(Color color) {
        return "#" + toHexColor(color);
    }
 
    public static String toHexColor(Color color) {
        return StringUtils.leftPad(Integer.toHexString(color.getRGB() & 0xFFFFFF), 6, '0');
    }
     
}


Hasil :



Reference :  https://www.zkoss.org/zkdemo/chart

Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...