/* * Created by JFormDesigner on Sun Jul 01 00:35:36 CEST 2007 */ package info.opencards.ui.lastmin; import info.opencards.OpenCards; import info.opencards.core.CardFile; import info.opencards.core.LearnProcessManager; import info.opencards.learnstrats.leitner.LeitnerLearnMethodFactory; import info.opencards.learnstrats.leitner.LeitnerProcessManager; import info.opencards.learnstrats.leitner.LeitnerSystem; import info.opencards.learnstrats.leitner.LeitnerUtils; import info.opencards.ui.actions.CardFileSyncAction; import info.opencards.ui.actions.HelpAction; import info.opencards.ui.actions.ResetLeiterSystemAction; import javax.swing.*; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; /** * @author Holger Brandl */ public class CramLernSettingsPanel extends JPanel { private List<CardFile> cardFiles; public CramLernSettingsPanel() { initComponents(); defStratPanel = new LeitnerStrategyPanel(); stratPanelPanel.add(defStratPanel); stratPanelPanel.validate(); helpButton.setAction(new HelpAction("last_minute.html")); // CardFilePropsAction propsAction = new CardFilePropsAction(defStratPanel, false, Utils.getRB().getString("CramLernSettingsPanel.fileProperties") + "..."); // propsAction.setCardFile(Arrays.asList(cardFile)); // configureFileButton.setAction(propsAction); } public void configure(List<CardFile> cardFiles) { this.cardFiles = cardFiles; if (cardFiles.isEmpty()) return; // todo make sure that it does not steal the selection of the category view final CardFileSyncAction cardFileSyncAction = new CardFileSyncAction(null); cardFileSyncAction.actionPerformed(null); resetBoxesButton.setAction(new ResetLeiterSystemAction(cardFiles, this)); List<LeitnerSystem> leitners = new ArrayList<LeitnerSystem>(); for (CardFile cardFile : cardFiles) { leitners.add(cardFile.getFlashCards().getLeitnerItems()); } LeitnerSystem leitnerSystem = LeitnerUtils.merge(leitners); leitnerStatePanel.setLeitnerSystem(leitnerSystem); } private void startLearningAction() { LeitnerLearnMethodFactory factory = defStratPanel.getLearnMethodFactory(); LeitnerLearnDialog itemEvaluater = new LeitnerLearnDialog(); LearnProcessManager processManager = new LeitnerProcessManager(cardFiles, itemEvaluater, factory); OpenCards.getInstance().getLearnPanel().setControls(itemEvaluater); OpenCards.showLearnView(); processManager.startProcessing(); } private void cancelLearningAction() { OpenCards.showCategoryView(); } public void setVisible(boolean b) { startLearnButton.requestFocusInWindow(); super.setVisible(b); } private void setDefaultButtonActionPerformed() { defStratPanel.saveDefaults(); } private void initComponents() { // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents // Generated using JFormDesigner non-commercial license ResourceBundle bundle = ResourceBundle.getBundle("info.opencards.translation"); panel4 = new JPanel(); leitnerStatePanel = new LeitnerStatePanel(); panel5 = new JPanel(); resetBoxesButton = new JButton(); stratPanelPanel = new JPanel(); defStratPanel = new LeitnerStrategyPanel(); JPanel panel3 = new JPanel(); helpButton = new JButton(); setDefaultButton = new JButton(); hSpacer1 = new JPanel(null); cancelButton = new JButton(); startLearnButton = new JButton(); configureFileButton = new JButton(); //======== this ======== setLayout(new BorderLayout()); //======== panel4 ======== { panel4.setBorder(new TitledBorder(null, bundle.getString("LearnSettingsPanel.panel4.border"), TitledBorder.LEADING, TitledBorder.TOP)); panel4.setLayout(new BorderLayout()); //---- leitnerStatePanel ---- leitnerStatePanel.setMinimumSize(new Dimension(100, 100)); leitnerStatePanel.setPreferredSize(new Dimension(100, 100)); panel4.add(leitnerStatePanel, BorderLayout.CENTER); //======== panel5 ======== { panel5.setLayout(new GridBagLayout()); ((GridBagLayout) panel5.getLayout()).columnWidths = new int[]{0, 0}; ((GridBagLayout) panel5.getLayout()).rowHeights = new int[]{0, 0}; ((GridBagLayout) panel5.getLayout()).columnWeights = new double[]{1.0, 1.0E-4}; ((GridBagLayout) panel5.getLayout()).rowWeights = new double[]{0.0, 1.0E-4}; //---- resetBoxesButton ---- resetBoxesButton.setText("Reset Cards"); panel5.add(resetBoxesButton, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); } panel4.add(panel5, BorderLayout.SOUTH); } add(panel4, BorderLayout.NORTH); //======== stratPanelPanel ======== { stratPanelPanel.setBorder(new TitledBorder(null, bundle.getString("LearnSettingsPanel.stratPanelPanel.border"), TitledBorder.LEADING, TitledBorder.TOP)); stratPanelPanel.setLayout(new BorderLayout()); stratPanelPanel.add(defStratPanel, BorderLayout.CENTER); } add(stratPanelPanel, BorderLayout.CENTER); //======== panel3 ======== { panel3.setBorder(new EmptyBorder(5, 5, 5, 5)); panel3.setLayout(new GridBagLayout()); ((GridBagLayout) panel3.getLayout()).columnWidths = new int[]{0, 0, 0, 90, 100, 0}; ((GridBagLayout) panel3.getLayout()).rowHeights = new int[]{0, 0}; ((GridBagLayout) panel3.getLayout()).columnWeights = new double[]{0.0, 0.0, 1.0, 0.0, 0.0, 1.0E-4}; ((GridBagLayout) panel3.getLayout()).rowWeights = new double[]{1.0, 1.0E-4}; //---- helpButton ---- helpButton.setText(bundle.getString("General.help")); helpButton.setName(null); panel3.add(helpButton, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 10), 0, 0)); //---- setDefaultButton ---- setDefaultButton.setText(bundle.getString("CramLernSettingsPanel.setDefaultButton.text")); setDefaultButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { setDefaultButtonActionPerformed(); } }); panel3.add(setDefaultButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 10), 0, 0)); panel3.add(hSpacer1, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 10), 0, 0)); //---- cancelButton ---- cancelButton.setText(bundle.getString("General.cancel")); cancelButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { cancelLearningAction(); } }); panel3.add(cancelButton, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 10), 0, 0)); //---- startLearnButton ---- startLearnButton.setText(bundle.getString("StartLearningAction.StartLearning")); startLearnButton.setFont(startLearnButton.getFont().deriveFont(startLearnButton.getFont().getStyle() | Font.BOLD)); startLearnButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { startLearningAction(); } }); panel3.add(startLearnButton, new GridBagConstraints(4, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); } add(panel3, BorderLayout.SOUTH); //---- configureFileButton ---- configureFileButton.setText(bundle.getString("CardFileTable.cxtMenu.configureCards")); configureFileButton.setEnabled(false); // JFormDesigner - End of component initialization //GEN-END:initComponents } // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables // Generated using JFormDesigner non-commercial license private JPanel panel4; private LeitnerStatePanel leitnerStatePanel; private JPanel panel5; private JButton resetBoxesButton; private JPanel stratPanelPanel; private LeitnerStrategyPanel defStratPanel; private JButton helpButton; private JButton setDefaultButton; private JPanel hSpacer1; private JButton cancelButton; private JButton startLearnButton; private JButton configureFileButton; // JFormDesigner - End of variables declaration //GEN-END:variables }