Warning: session_start(): open(/var/lib/php/sessions/sess_3a3cqp9qrh1g73lb9ni7f663df, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass G22ChallengesPanel {
replace Challenge with G22Challenge.
transient settable G22Utils g22utils;
transient SimpleCRUD_v2 challengeCRUD;
transient SingleComponentPanel scpChallengePanel;
transient SimpleCRUD_v2 recognizerCRUD;
transient G22ChallengePanel challengePanel;
transient G22ChallengeIDE challengeIDE;
simplyCached JComponent visualize() {
challengeCRUD = new SimpleCRUD_v2<>(g22utils.concepts(), Challenge);
g22utils.setupScriptCRUD(challengeCRUD);
challengeCRUD.addCountToEnclosingTab(true);
challengeCRUD.entityName = -> "Challenge";
challengeIDE = new G22ChallengeIDE(g22utils);
challengeIDE.noScriptSelectedMsg("Please select a challenge above to start");
challengeIDE.modifyIDE = ide -> {
// TODO ide.runScript =
};
recognizerCRUD = new SimpleCRUD_v2<>(g22utils.concepts(), G22RecognizerScript);
recognizerCRUD.entityName = -> "Recognizer";
g22utils.setupScriptCRUD(recognizerCRUD);
var recognizerCRUDVis = recognizerCRUD.visualize();
recognizerCRUD.onSelectionChanged(->
recognizerIDE.setScript(recognizerCRUD.selected()));
scpChallengePanel = singleComponentPanel();
challengeCRUD.onSelectionChangedAndNow(r_dm_q(l0 makeChallengePanel));
ret jhsplit(
withTopRightAndBottomMargin(jCenteredRaisedSection("Challenges",
withSideAndBottomMargin(
jvsplit(
jvsplit(
withBottomMargin(challengeCRUD.visualize()),
challengeIDE.visualize()
),
jCenteredRaisedSection("Recognizers", recognizerCRUDVis)
)
))),
withSideMargins(scpChallengePanel));
}
void makeChallengePanel {
var challenge = challengeCRUD.selected();
challengeIDE.setScript(challenge);
if (challenge == null) ret;
var panel = challengePanel = G22ChallengePanel(challenge);
panel.g22utils(g22utils);
panel.init();
scpChallengePanel.set(withTopAndBottomMargin(12, 6, panel.visualize()));
}
void updateCount {
challengeCRUD.update();
}
}