sclass G22AnalyzersPanel extends G22CRUDAndDetailPanel { SimpleCRUD_v2 makeCRUD() { var crud = new SimpleCRUD_v2<>(g22utils.concepts(), G22Analyzer); crud.entityName = -> "Analyzer"; g22utils.setupScriptCRUD(crud); ret crud; } void crudVisualized :: after { crud.addButton(jPopDownButton_noText( "Copy to other project...", rThread copyToOtherProject )); } void copyToOtherProject { var analyzer = crud.selected(); var srcProject = g22utils.getLoadedDB(); var projects = g22utils.masterStuff().getLoadedDBs(); var cbProject = jTypedComboBox(listMinus(projects, srcProject)); packFrame(showFormTitled3("Copy analyzer to other project", "Copy analyzer", str(analyzer), "From project", str(srcProject), "To project", cbProject, "", jThreadedButton("Copy", -> copyToOtherProject(analyzer, getSelectedItem_typed(cbProject))) ).visualize()); } void copyToOtherProject(G22Analyzer src, IG22LoadedDB project) { new G22Analyzer clone; clone.description(src.description) .text(src.text); clone.clearedForAutoRun(src.clearedForAutoRun) .editingText(src.editingText) .importNote("Copied from project " + quote(g22utils.masterStuff().getLoadedDB(src.concepts())) + " on " + localDateWithSeconds()); registerConcept(project.concepts(), clone); infoBox("Made clone: " + clone); } JComponent makeDetailView(G22Analyzer script) { var scriptIDE = new G22AnalyzerIDE(g22utils); scriptIDE.setScript(script); ret scriptIDE.visualize(); } SimpleCRUD_v2 scriptCRUD() { ret crud(); } selfType g22utils(G22Utils g22utils) { super.g22utils(g22utils); this; } }