package org.jzy3d.chart.graphs;

import java.util.List;

import org.apache.log4j.Logger;
import org.jzy3d.chart.Chart;
import org.jzy3d.chart.controllers.mouse.camera.ICameraMouseController;
import org.jzy3d.chart.controllers.mouse.picking.NewtMousePickingController;
import org.jzy3d.chart.factories.ChartComponentFactory;
import org.jzy3d.picking.IObjectPickedListener;
import org.jzy3d.picking.PickingSupport;

public class GraphChartComponentFactory extends ChartComponentFactory{
    static Logger logger = Logger.getLogger(GraphChartComponentFactory.class);
    
    @Override
    public ICameraMouseController newMouseController(Chart chart){
        ICameraMouseController mouse = null;
        if(!chart.getWindowingToolkit().equals("newt"))
            mouse = newAWTMouseController(chart);
        else
            throw new IllegalArgumentException("newt not supported");
        return mouse;
    }
    
    public ICameraMouseController newAWTMouseController(final Chart chart){
        NewtMousePickingController mouse = new NewtMousePickingController(chart);
        mouse.getPickingSupport().addObjectPickedListener(new IObjectPickedListener() {
            @Override
            public void objectPicked(List vertices, PickingSupport picking) {
                for(Object vertex: vertices){
                    logger.info("picked: " + vertex);
                    //dGraph.setVertexHighlighted((String)vertex, true);
                }
                chart.render();
            }
        });
        return mouse;
    }
}

 

Ads help maintain this website.