Esempio n. 1
0
        protected void onBnFace2Remove(object sender, EventArgs e)
        {
            TreeSelection selection = treeviewFace2.Selection;
            TreeModel     model;
            TreeIter      iter;

            if (selection.CountSelectedRows() == 1)
            {
                TreePath tp     = selection.GetSelectedRows()[0];
                int      iPlace = tp.Indices[0];

                if (selection.GetSelected(out model, out iter))
                {
                    // get the face1 list
                    //

                    Dictionary <String, String>         cardDefinition = CardGeneratorDB.Instance.getRowFromTable(CardGeneratorDB.TABLECardDefinitions, "FaceCardName", _SelectedCardTypeName);
                    List <CardDefinitions.CardDefClass> face1          = CardDefinitions.faceCardStructureFromJSONString(cardDefinition["Face2"]);
                    face1.RemoveAt(iPlace);
                    String face1JSONString = CardDefinitions.JSONStringFromfaceCardStructure(face1);

                    CardGeneratorDB.Instance.updateRowField(CardGeneratorDB.TABLECardDefinitions, CardGeneratorDB.COLUMNCardDefinitionID, cardDefinition[CardGeneratorDB.COLUMNCardDefinitionID], "Face2", face1JSONString);

                    SelectCardType(_SelectedCardTypeName);
                }
            }
        }
        private void WriteDefaultTable()
        {
            JSONArrayCollection Face1 = new JSONArrayCollection();

            Face1.Add(CardDefinitions.newCardDef("English", "EN", false));
            Face1.Add(CardDefinitions.newCardDef("English", "EN", true));

            JSONArrayCollection Face2 = new JSONArrayCollection();

            Face2.Add(CardDefinitions.newCardDef("Pinyin", "ZH", false));
            Face2.Add(CardDefinitions.newCardDef("TradChinese", "ZH", false));
            Face2.Add(CardDefinitions.newCardDef("SimpChinese", "ZH", false));
            Face2.Add(CardDefinitions.newCardDef("TradChinese", "ZH", true));

            String strFace1 = Face1.ToString();
            String strFace2 = Face2.ToString();

            var commands = new[] {
                "CREATE TABLE CardData (" + COLUMNCardDataID + " INTEGER PRIMARY KEY, English ntext, Pinyin ntext, TradChinese ntext, SimpChinese ntext, German ntext)",
                "INSERT INTO CardData (English, Pinyin, TradChinese, SimpChinese, German) VALUES ('One', 'Yi', '一', '一', 'ein')",
                "INSERT INTO CardData (English, Pinyin, TradChinese, SimpChinese, German) VALUES ('Two', 'Er', '二', '二', 'zwei')",
                "INSERT INTO CardData (English, Pinyin, TradChinese, SimpChinese, German) VALUES ('Three', 'San', '三', '三', 'drei')",

                "CREATE TABLE CardDefinitions (" + COLUMNCardDefinitionID + " INTEGER PRIMARY KEY, FaceCardName ntext, Face1 ntext, Face2 ntext)",
                "INSERT INTO CardDefinitions (FaceCardName, Face1, Face2) VALUES ('Eng->Ch', '" + strFace1 + "', '" + strFace2 + "')",
                "INSERT INTO CardDefinitions (FaceCardName, Face1, Face2) VALUES ('Ch->Eng', '" + strFace2 + "', '" + strFace1 + "')",

                "CREATE TABLE CardOutput (" + COLUMNCardOutputID + " INTEGER PRIMARY KEY, " + COLUMNCardDefinitionID + " INTEGER, " + COLUMNCardDataID + " INTEGER)",
            };

            execDB(commands);

            //!
        }
Esempio n. 3
0
        public static String JSONStringFromfaceCardStructure(List <CardDefinitions.CardDefClass> cardList)
        {
            JSONArrayCollection ret = new JSONArrayCollection();

            foreach (CardDefClass item in cardList)
            {
                ret.Add(CardDefinitions.newCardDef(item.COLUMNSOURCE, item.LANGUAGECODE, item.TYPE));
            }
            return(ret.ToString());
        }
Esempio n. 4
0
        private void SelectCardType(String strID)
        {
            Gtk.ListStore lsf1 = (Gtk.ListStore)treeviewFace1.Model;
            Gtk.ListStore lsf2 = (Gtk.ListStore)treeviewFace2.Model;
            lsf1.Clear();
            lsf2.Clear();
            _SelectedCardTypeName = strID;

            if (strID != null)
            {
                Dictionary <String, String>         cardDefinition = CardGeneratorDB.Instance.getRowFromTable(CardGeneratorDB.TABLECardDefinitions, "FaceCardName", strID);
                List <CardDefinitions.CardDefClass> face1          = CardDefinitions.faceCardStructureFromJSONString(cardDefinition["Face1"]);
                List <CardDefinitions.CardDefClass> face2          = CardDefinitions.faceCardStructureFromJSONString(cardDefinition["Face2"]);

                PopulateFaceTable(treeviewFace1, face1);
                PopulateFaceTable(treeviewFace2, face2);
            }
        }
Esempio n. 5
0
        protected void onBnFace2Add(object sender, EventArgs e)
        {
            DialogAddFaceData dialog = new DialogAddFaceData();

            if (dialog.Run() == (int)ResponseType.Ok)
            {
                Dictionary <String, String>         cardDefinition = CardGeneratorDB.Instance.getRowFromTable(CardGeneratorDB.TABLECardDefinitions, "FaceCardName", _SelectedCardTypeName);
                List <CardDefinitions.CardDefClass> face           = CardDefinitions.faceCardStructureFromJSONString(cardDefinition["Face2"]);

                CardDefinitions.CardDefClass newFaceDef = new CardDefinitions.CardDefClass();
                newFaceDef.COLUMNSOURCE = dialog.Column;
                newFaceDef.LANGUAGECODE = dialog.LanguageCode;
                newFaceDef.TYPE         = dialog.Voice;

                face.Add(newFaceDef);
                String faceJSONString = CardDefinitions.JSONStringFromfaceCardStructure(face);
                CardGeneratorDB.Instance.updateRowField(CardGeneratorDB.TABLECardDefinitions, CardGeneratorDB.COLUMNCardDefinitionID, cardDefinition[CardGeneratorDB.COLUMNCardDefinitionID], "Face2", faceJSONString);
                SelectCardType(_SelectedCardTypeName);
            }
            dialog.Destroy();
        }
Esempio n. 6
0
        private static List <CardDefinitions.CardDefClass> getLanguages()
        {
            List <CardDefinitions.CardDefClass> ret = new List <CardDefinitions.CardDefClass>();

            List <Dictionary <String, String> > cardDefinitions = CardGeneratorDB.Instance.getDataFromTable(CardGeneratorDB.TABLECardDefinitions);

            foreach (Dictionary <String, String> item in cardDefinitions)
            {
                for (int i = 0; i < 100; i++)
                {
                    String keyName = CardGeneratorDB.COLUMNFace + i;
                    if (item.ContainsKey(keyName))
                    {
                        String faceJSONData = item[keyName];
                        List <CardDefinitions.CardDefClass> audioLanguages = CardDefinitions.audioLanguagesFromJSONString(faceJSONData);
                        ret.AddRange(audioLanguages);
                    }
                }
            }
            return(ret);
        }
Esempio n. 7
0
        public static String textFromKLEIOOutput()
        {
            StringWriter fileout = new StringWriter();

            List <Dictionary <String, String> > outputTable = CardGeneratorDB.Instance.getDataFromTable(CardGeneratorDB.TABLECardOutput);

            foreach (Dictionary <String, String> outputEntry in outputTable)
            {
                String CardDataID       = outputEntry[CardGeneratorDB.COLUMNCardDataID];
                String CardDefinitionID = outputEntry[CardGeneratorDB.COLUMNCardDefinitionID];


                // ("+COLUMNCardOutputID+" INTEGER NOT NULL, "+COLUMNCardDefinitionID+" INTEGER, "+COLUMNCardDataID+" INTEGER)",
                Dictionary <String, String> cardDefinition = CardGeneratorDB.Instance.getRowFromTable(CardGeneratorDB.TABLECardDefinitions, CardGeneratorDB.COLUMNCardDefinitionID, CardDefinitionID);
                Dictionary <String, String> cardData       = CardGeneratorDB.Instance.getRowFromTable(CardGeneratorDB.TABLECardData, CardGeneratorDB.COLUMNCardDataID, CardDataID);

                StringWriter faceOutput    = new StringWriter();
                int          iFace         = 1;
                bool         bFirstFaceRun = true;
                bool         bContinue     = true;
                while (bContinue)
                {
                    String faceColumn = "Face" + (iFace++);
                    if (cardDefinition.ContainsKey(faceColumn))
                    {
                        if (!bFirstFaceRun)
                        {
                            faceOutput.Write(",");
                        }
                        else
                        {
                            bFirstFaceRun = false;
                        }

                        String faceDefinition = cardDefinition[faceColumn];
                        List <CardDefinitions.CardDefClass> faceLanguages = CardDefinitions.faceCardStructureFromJSONString(faceDefinition);
                        bool bFirstRun = true;                         // first entry in a face

                        foreach (CardDefinitions.CardDefClass item in faceLanguages)
                        {
                            if (item.TYPE == false)
                            {
                                if (!bFirstRun)
                                {
                                    faceOutput.Write(" - ");
                                }
                                else
                                {
                                    bFirstRun = false;
                                }

                                if (item.TYPE == false)
                                {
                                    faceOutput.Write(cardData[item.COLUMNSOURCE]);
                                }
                                else
                                {
                                    // a sound, get the sound instead
                                    //String filename = AudioFiles.generateFilename(item.LANGUAGECODE, cardData[item.COLUMNSOURCE]);
                                    //faceOutput.Write("[sound:" + filename + "]");
                                }
                            }
                        }
                    }
                    else
                    {
                        bContinue = false;
                    }
                }

                String outLn = faceOutput.ToString();
                fileout.WriteLine(outLn);

                // ok, now build the faces from each
                // get faces data

                // DE-JSON into class data

                // build string for each JSON context
            }
            fileout.Close();

            return(fileout.ToString());
        }