class DataTablesControllerImpl implements DataTablesController {

    private DataTablesEventListener listener;

    @Override
    public DataTablesEventListener getDataTablesEventListener() {
        return listener;
    }

    @Override
    public void setDataTablesEventListener(DataTablesEventListener listener) {
        this.listener = listener;
    }

    @Override
    public boolean isDataTablesReady() {
        return listener != null;
    }

    @Override
    public void selectNodesTable() {
        if (listener != null) {
            listener.selectNodesTable();
        }
    }

    @Override
    public void selectEdgesTable() {
        if (listener != null) {
            listener.selectEdgesTable();
        }
    }

    @Override
    public void selectTable(Table table) {
        if (listener != null) {
            if (Lookup.getDefault().lookup(AttributeColumnsController.class).isEdgeTable(table)) {
                selectEdgesTable();
            } else {
                selectNodesTable();
            }
        }
    }

    @Override
    public void refreshCurrentTable() {
        if (listener != null) {
            listener.refreshCurrentTable();
        }
    }

    @Override
    public Node[] getNodeTableSelection() {
        if (listener != null) {
            return listener.getNodeTableSelection();
        } else {
            return null;
        }
    }

    @Override
    public void setNodeTableSelection(Node[] nodes) {
        if (listener != null) {
            listener.setNodeTableSelection(nodes);
        }
    }

    @Override
    public Edge[] getEdgeTableSelection() {
        if (listener != null) {
            return listener.getEdgeTableSelection();
        } else {
            return null;
        }
    }

    @Override
    public void setEdgeTableSelection(Edge[] edges) {
        if (listener != null) {
            listener.setEdgeTableSelection(edges);
        }
    }

    @Override
    public void clearSelection() {
        if (listener != null) {
            listener.clearSelection();
        }
    }

    @Override
    public boolean isNodeTableMode() {
        if (listener != null) {
            return listener.isNodeTableMode();
        } else {
            return false;
        }
    }

    @Override
    public boolean isEdgeTableMode() {
        if (listener != null) {
            return listener.isEdgeTableMode();
        } else {
            return false;
        }
    }

    @Override
    public boolean isShowOnlyVisible() {
        if (listener != null) {
            return listener.isShowOnlyVisible();
        } else {
            return false;
        }
    }

    @Override
    public void setShowOnlyVisible(boolean showOnlyVisible) {
        if (listener != null) {
            listener.setShowOnlyVisible(showOnlyVisible);
        }
    }

    @Override
    public void exportCurrentTable() {
        if (listener != null) {
            listener.exportCurrentTable();
        }
    }

    @Override
    public boolean isUseSparklines() {
        if (listener != null) {
            return listener.isUseSparklines();
        } else {
            return false;
        }
    }

    @Override
    public void setUseSparklines(boolean useSparklines) {
        if (listener != null) {
            listener.setUseSparklines(useSparklines);
        }
    }

    @Override
    public boolean isTimeIntervalGraphics() {
        if (listener != null) {
            return listener.isTimeIntervalGraphics();
        } else {
            return false;
        }
    }

    @Override
    public void setTimeIntervalGraphics(boolean timeIntervalGraphics) {
        if (listener != null) {
            listener.setTimeIntervalGraphics(timeIntervalGraphics);
        }
    }

    @Override
    public boolean isShowEdgesNodesLabels() {<FILL_FUNCTION_BODY>}

    @Override
    public void setShowEdgesNodesLabels(boolean showEdgesNodesLabels) {
        if (listener != null) {
            listener.setShowEdgesNodesLabels(showEdgesNodesLabels);
        }
    }

    @Override
    public boolean prepareDataTables() {
        DataTablesEventListenerBuilder builder = Lookup.getDefault().lookup(DataTablesEventListenerBuilder.class);
        if (builder != null) {
            listener = builder.getDataTablesEventListener();
        }
        return isDataTablesReady();
    }

    @Override
    public boolean isAutoRefreshEnabled() {
        if (listener != null) {
            return listener.isAutoRefreshEnabled();
        } else {
            return false;
        }
    }

    @Override
    public void setAutoRefreshEnabled(boolean enabled) {
        if (listener != null) {
            listener.setAutoRefreshEnabled(enabled);
        }
    }
}

        if (listener != null) {
            return listener.isShowEdgesNodesLabels();
        } else {
            return false;
        }
    
<no_super_class>