void removeCycle(CycleSetModel.Cycle cycle) {
        if (myCycleEditTabs.getTabCount() < 3) { // cant remove the last one
            return;
        }
        if (cycle.myControl != null) {
            myCycleEditTabs.remove(getTabbIndex(cycle.myControl));
        }
        myGraphs.remove(cycle.myView);
        myGraphs.validate();
        myGraphLayout.setRows(myCycleEditTabs.getTabCount() - 1);
        myCycleSetModel.removeCycle(cycle);
        myCycleEditTabs.setSelectedIndex(0);

    }
This provide the overall frame and top level ui elements
ConstraintLayoutExamples/CycleEditor/src/com/google/androidstudio/motionlayoutcycles/MainPanel.java