import java.awt.BorderLayout;

import javax.swing.JFrame;

import vtk.vtk3DWidget;
import vtk.vtkActor;
import vtk.vtkAlgorithmOutput;
import vtk.vtkBoxWidget;
import vtk.vtkCanvas;
import vtk.vtkDataSetMapper;
import vtk.vtkDataSetReader;
import vtk.vtkInteractorStyleSwitch;
import vtk.vtkInteractorStyleTrackball;
import vtk.vtkInteractorStyleTrackballCamera;
import vtk.vtkRenderWindow;
import vtk.vtkRenderWindowInteractor;
import vtk.vtkRenderer;
import vtk.vtkTransform;


public class MyWidget {
	
	public MyWidget() {
		vtkCanvas panel = new vtkCanvas();
		//
		vtkDataSetReader reader = new vtkDataSetReader();
		reader.SetFileName("image.txt");
		reader.Update();
		reader.CloseVTKFile();
		
		//vtkDataSet data = reader.GetOutput();
		vtkAlgorithmOutput output = reader.GetOutputPort();
		vtkDataSetMapper mapper = new vtkDataSetMapper();
		vtkActor actor = new vtkActor();

		mapper.SetInputConnection(output);
		
		vtkBoxWidget boxw = new vtkBoxWidget();
				
		actor.SetMapper(mapper);
		
		
	    panel.setInteractorStyle(new vtkInteractorStyleTrackballCamera());
	    
	    boxw.SetInteractor(panel.getIren());
	    boxw.SetPlaceFactor(1.5);
	    
	    boxw.SetProp3D(actor);
	    boxw.PlaceWidget();
	    
	    boxw.AddObserver("IntractionEvent", this, "myCallBack");
	    
	    boxw.On();
	    
		panel.GetRenderer().AddActor(actor);
		
		//
		JFrame f = new JFrame("Widget Test");
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(500, 500);
		f.setLocationRelativeTo(null);
		f.getContentPane().setLayout(new BorderLayout());
		f.getContentPane().add(panel, BorderLayout.CENTER);
		f.setVisible(true);		

	}
	
	public void myCallBack(vtkBoxWidget widget, String event) {
		
		vtkTransform t = new vtkTransform();
		widget.GetTransform(id0)
		
	}

	
	public static void main(String[] args) {

		
	}	
}
