class GraphCanvas extends GLAbstractListener {

    private final GLUT glut = new GLUT();

    @Override
    protected GLAutoDrawable initDrawable() {
        GLCanvas glCanvas = new GLCanvas(getCaps());
//        glCanvas.setMinimumSize(new Dimension(0, 0));   //Fix Canvas resize Issue

        graphComponent = glCanvas;

        return glCanvas;
    }

    @Override
    protected void init(GL2 gl) {
        globalScale = ((GLCanvas)drawable).getCurrentSurfaceScale(new float[2])[0];

        engine.startDisplay();
    }

    @Override
    protected void render3DScene(GL2 gl, GLU glu) {<FILL_FUNCTION_BODY>}

    @Override
    protected void reshape3DScene(GL2 gl) {
    }

    @Override
    public void reinitWindow() {
        if (UIUtils.isAquaLookAndFeel()) {
            // Only used when collapse panel is set visible
            // Workaround for JOGL bug 1274
            Container c = graphComponent.getParent();
            if (c != null) {
                c.remove(graphComponent);
                c.add(graphComponent, BorderLayout.CENTER);
            }
        }
    }
}

        if (vizController.getVizConfig().isShowFPS()) {
            gl.glPushMatrix();
            gl.glLoadIdentity();
            gl.glMatrixMode(GL2.GL_PROJECTION);
            gl.glPushMatrix();
            gl.glLoadIdentity();

            gl.glGetIntegerv(GL2.GL_VIEWPORT, viewport);
            glu.gluOrtho2D(0, viewport.get(2), viewport.get(3), 0);
            gl.glDepthFunc(GL2.GL_ALWAYS);
            gl.glColor3i(192, 192, 192);
            gl.glRasterPos2f(10, 15);
            String fpsRound = String.valueOf((int) fps);
            glut.glutBitmapString(GLUT.BITMAP_HELVETICA_10, fpsRound);

            gl.glDepthFunc(GL2.GL_LESS);
            gl.glPopMatrix();
            gl.glMatrixMode(GL2.GL_MODELVIEW);
            gl.glPopMatrix();
        }
    
<methods>public void <init>() ,public void destroy() ,public void display(GLAutoDrawable) ,public void display() ,public void dispose(GLAutoDrawable) ,public float[] getCameraLocation() ,public float[] getCameraTarget() ,public org.gephi.lib.gleem.linalg.Vec3f getCameraVector() ,public double getDraggingMarkerX() ,public double getDraggingMarkerY() ,public GL2 getGL() ,public GLAutoDrawable getGLAutoDrawable() ,public float getGlobalScale() ,public synchronized java.awt.Component getGraphComponent() ,public org.gephi.visualization.opengl.GraphicalConfiguration getGraphicalConfiguration() ,public java.awt.Point getLocationOnScreen() ,public java.nio.FloatBuffer getModelMatrix() ,public java.nio.FloatBuffer getProjectionMatrix() ,public java.nio.IntBuffer getViewport() ,public int getViewportHeight() ,public int getViewportWidth() ,public void init(GLAutoDrawable) ,public void initArchitecture() ,public void initConfig(GL2) ,public void initMouseEvents() ,public boolean isDestroyed() ,public double[] myGluProject(float, float) ,public float[] myGluProject(float, float, float) ,public void refreshDraggingMarker() ,public void renderTestCube(GL2) ,public void reshape(GLAutoDrawable, int, int, int, int) ,public void setCameraLocation(float[]) ,public void setCameraPosition(GL2, GLU) ,public void setCameraTarget(float[]) ,public void setVizController(org.gephi.visualization.VizController) <variables>protected static final GLU GLU,private double aspectRatio,protected float[] cameraLocation,protected float[] cameraTarget,protected org.gephi.lib.gleem.linalg.Vec3f cameraVector,private boolean destroyed,protected double[] draggingMarker,protected GLAutoDrawable drawable,protected org.gephi.visualization.opengl.AbstractEngine engine,public final float farDistance,protected float fps,protected float fpsAvg,protected float fpsCount,protected float globalScale,protected java.awt.Component graphComponent,protected org.gephi.visualization.apiimpl.GraphIO graphIO,protected org.gephi.visualization.swing.GLAbstractListener.GraphMouseAdapter graphMouseAdapter,protected java.awt.event.MouseAdapter graphMouseAdapterCanvas,protected MouseAdapter graphMouseAdapterNewt,protected org.gephi.visualization.opengl.GraphicalConfiguration graphicalConfiguration,protected java.nio.FloatBuffer modelMatrix,public final float nearDistance,protected java.nio.FloatBuffer projMatrix,private volatile boolean resizing,private static float rotateFactor,protected org.gephi.visualization.apiimpl.Scheduler scheduler,private boolean showGLLog,private long startTime,public final float viewField,protected java.nio.IntBuffer viewport,protected org.gephi.visualization.VizController vizController,protected org.gephi.visualization.VizModel vizModel,protected GLWindow window