public SelectCategoryWindowVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     categories = new ObservableCollection<CategoryVM>();
     selectedCategories = new ObservableCollection<CategoryVM>();
     Filter("");
 }
Beispiel #2
0
        public MemberFormVM(StudyUnitVM studyUnit)
            : base(studyUnit)
        {
            members = new ObservableCollection<MemberVM>();
            organizations = new ObservableCollection<OrganizationVM>();

            //OrganizationVMのリストを生成する(画面下部に表示される他、メンバーの組織選択コンボで使われる)
            int i = 1;
            foreach (Organization organizationModel in studyUnit.OrganizationModels)
            {
                OrganizationVM organization = new OrganizationVM(organizationModel);
                InitExistOrganization(organization, i++);
                organizations.Add(organization);
            }

            //MemberVMのリストを生成する
            i = 1;
            foreach (Member memberModel in studyUnit.MemberModels)
            {
                OrganizationVM organization = OrganizationVM.Find(organizations, memberModel.OrganizationId);
                MemberVM member = new MemberVM(memberModel, organization.OrganizationName);
                InitExistMember(member, i++);
                members.Add(member);
            }
            memberSyncher = new ModelSyncher<MemberVM, Member>(this, members, studyUnit.MemberModels);
            organizationSyncher = new ModelSyncher<OrganizationVM, Organization>(this, organizations, studyUnit.OrganizationModels);
        }
Beispiel #3
0
 public void WriteCodebook(string path, StudyUnitVM studyUnit)
 {
     Debug.Assert(!string.IsNullOrEmpty(path));
     this.studyUnit = studyUnit;
     ClearError();
     CreateConvertIds();
     XmlWriterSettings xws = new XmlWriterSettings();
     xws.Indent = true;
     xws.Encoding = Encoding.UTF8;
     using (XmlWriter xw = XmlWriter.Create(path, xws))
     {
         XDocument doc = new XDocument(
             DECLARATION,
             new XElement(cb + TAG_CODEBOOK,
                 CreateSafeIDAttribute(studyUnit.Id),
                 CreateVersionAttribute(),
                 new XAttribute("xmlns", cb),
                 new XAttribute(XNamespace.Xmlns + "xsi", xsi),
                 new XAttribute(XNamespace.Xmlns + "dc", dc),
                 new XAttribute(XNamespace.Xmlns + "terms", terms),
                 new XAttribute(XNamespace.Xmlns + "schemaLocation", schemaLocation),
                 CreateStdyDscr(),
                 CreateFileDscrs(),
                 CreateDataDscr()
                 )
         );
         CheckError();
         doc.WriteTo(xw);
     }
 }
 public SelectMemberWindowVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     this.members = new ObservableCollection<MemberVM>();
     this.selectedMember = null;
     this.Filter("");
 }
 public static void ExportQuestionnaire(EDOConfig config, StudyUnitVM studyUnit)
 {
     ControlConstructSchemeVM controlConstructScheme = null;
     if (studyUnit.ControlConstructSchemes.Count > 1)
     {
         SelectObjectWindowVM<ControlConstructSchemeVM> vm = new SelectObjectWindowVM<ControlConstructSchemeVM>(studyUnit.ControlConstructSchemes);
         SelectObjectWindow window = new SelectObjectWindow(vm);
         controlConstructScheme = SelectObjectWindow.Select(Resources.SelectOrder, vm) as ControlConstructSchemeVM; //順序の選択
     }
     else if (studyUnit.ControlConstructSchemes.Count == 1)
     {
         controlConstructScheme = studyUnit.ControlConstructSchemes[0];
     }
     if (controlConstructScheme == null)
     {
         return;
     }
     string path = IOUtils.QuerySavePathName(Resources.ExportQuestionnair + ": " + controlConstructScheme.Title , null, QUESTIONNAIRE_FILTER, true);
     if (string.IsNullOrEmpty(path))
     {
         return;
     }
     try
     {
         QuestionnaireWriter writer = new QuestionnaireWriter(config, controlConstructScheme);
         writer.Write(path);
     }
     catch (Exception ex)
     {
         EDOUtils.ShowUnexpectedError(ex);
     }
 }
 public static void ExportSetupSyntax(StudyUnitVM studyUnit)
 {
     DataFileVM dataFile = null;
     if (studyUnit.DataFiles.Count > 1)
     {
         SelectObjectWindowVM<DataFileVM> vm = new SelectObjectWindowVM<DataFileVM>(studyUnit.DataFiles);
         SelectObjectWindow window = new SelectObjectWindow(vm);
         dataFile = SelectObjectWindow.Select(Resources.SelectDataFile, vm) as DataFileVM; //データファイルの選択
     }
     else if (studyUnit.DataFiles.Count == 1)
     {
         dataFile = studyUnit.DataFiles[0];
     }
     if (dataFile == null)
     {
         return;
     }
     string path = IOUtils.QuerySavePathName(Resources.ExportSetupSyntax, null, SETUPSYNTAX_FILTER, true); //セットアップシンタックスのエクスポート
     if (string.IsNullOrEmpty(path))
     {
         return;
     }
     try
     {
         SetupSyntaxWriter writer = new SetupSyntaxWriter(studyUnit, dataFile);
         writer.Write(path);
     }
     catch (Exception ex)
     {
         EDOUtils.ShowUnexpectedError(ex);
     }
 }
 public SelectResponseWindowVM(StudyUnitVM studyUnit, ResponseVM excludeResponse)
     : base(studyUnit)
 {
     this.excludeResponse = excludeResponse;
     this.responses = new ObservableCollection<ResponseVM>();
     Filter("");
 }
 public SelectVariableWindowVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     variables = new ObservableCollection<VariableVM>();
     selectedVariables = new ObservableCollection<VariableVM>();
     Filter("");
 }
        public SamplingFormVM(StudyUnitVM studyUnit)
            : base(studyUnit)
        {
            samplings = new ObservableCollection<SamplingVM>();

            //タイトルの命名方法を他のところと変える。
            //・EXCELのシート名のように使われていないユニークなタイトルを見つける。
            //・変数のイメージや助成金などは自分でタイトルを変更することができるが、
            //ここではできないため。
            HashSet<string> titles = Sampling.CollectTitles(studyUnit.SamplingModels);
            foreach (Sampling samplingModel in studyUnit.SamplingModels)
            {
                int uniqIndex = EDOUtils.UniqOrderNo(titles, samplingModel.Title, PREFIX);
                SamplingVM sampling = new SamplingVM(samplingModel)
                {
                    Parent = this,
                    OrderNo = uniqIndex,
                    OrderPrefix = PREFIX
                };
                sampling.Init();
                samplings.Add(sampling);
                titles.Add(sampling.Title); //タイトルセットに追加。
            }
            modelSyncher = new ModelSyncher<SamplingVM, Sampling>(this, samplings, studyUnit.SamplingModels);
        }
        public AbstractFormVM(StudyUnitVM studyUnit)
            : base(studyUnit)
        {
            abstractModel = studyUnit.AbstractModel;
            this.IsIgnoreValidation = true;

            books = new ObservableCollection<BookVM>();
        }
Beispiel #11
0
 public CodeFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     codeSchemes = new ObservableCollection<CodeSchemeVM>();
     foreach (CodeScheme codeSchemeModel in studyUnit.CodeSchemeModels)
     {
         CodeSchemeVM codeScheme = CreateCodeScheme(codeSchemeModel);
         codeSchemes.Add(codeScheme);
     }
     modelSyncher = new ModelSyncher<CodeSchemeVM, CodeScheme>(this, codeSchemes, studyUnit.CodeSchemeModels);
 }
Beispiel #12
0
 public BookFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     books = new ObservableCollection<BookVM>();
     foreach (Book bookModel in studyUnit.BookModels)
     {
         BookVM book = new BookVM(bookModel) { Parent = this };
         books.Add(book);
     }
     modelSyncher = new ModelSyncher<BookVM, Book>(this, books, studyUnit.BookModels);
 }
 public CategoryFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     categorySchemes = new ObservableCollection<CategorySchemeVM>();
     foreach (CategoryScheme categorySchemeModel in studyUnit.CategorySchemeModels)
     {
         CategorySchemeVM categoryScheme = new CategorySchemeVM(categorySchemeModel) {
             Parent = this
         };
         categorySchemes.Add(categoryScheme);
     }
     modelSyncher = new ModelSyncher<CategorySchemeVM, CategoryScheme>(this, categorySchemes, studyUnit.CategorySchemeModels);
 }
 public QuestionGroupFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     ObservableCollection<QuestionVM> allQuestions = studyUnit.AllQuestions;
     questionGroups = new ObservableCollection<QuestionGroupVM>();
     foreach (QuestionGroup questionGroupModel in studyUnit.QuestionGroupModels)
     {
         QuestionGroupVM questionGroup = new QuestionGroupVM(questionGroupModel, allQuestions)
         {
             Parent = this
         };
         questionGroups.Add(questionGroup);
     }
     modelSyncher = new ModelSyncher<QuestionGroupVM, QuestionGroup>(this, questionGroups, studyUnit.QuestionGroupModels);
 }
 public DataFileFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     dataFiles = new ObservableCollection<DataFileVM>();
     foreach (DataFile dataFileModel in studyUnit.DataFileModels)
     {
         DataSetVM dataSet = studyUnit.FindDataSet(dataFileModel.DataSetId);
         if (dataSet != null)
         {
             DataFileVM dataFile = createDataFile(dataFileModel, dataSet);
             dataFiles.Add(dataFile);
         }
     }
     modelSyncher = new ModelSyncher<DataFileVM, DataFile>(this, dataFiles, studyUnit.DataFileModels);
 }
 public VariableFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     variables = new ObservableCollection<VariableVM>();
     foreach (Variable variableModel in studyUnit.VariableModels)
     {
         //VariableVMの生成
         VariableVM variable = new VariableVM(variableModel);
         InitVariable(variable);
         //ResponseVMの生成
         variable.Response = CreateResponse(variableModel.Response);
         //配列に追加
         variables.Add(variable);
     }
     modelSyncher = new ModelSyncher<VariableVM, Variable>(this, variables, studyUnit.VariableModels);
 }
 public QuestionFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     concepts = new ObservableCollection<ConceptVM>();
     questionsDict = new Dictionary<string, ObservableCollection<QuestionVM>>();
     foreach (Question questionModel in studyUnit.QuestionModels)
     {
         //QuestionVMの生成
         ObservableCollection<QuestionVM> questions = RelatedQuestions(questionModel.ConceptId);
         QuestionVM question = new QuestionVM(questionModel);
         InitQuestion(question);
         //ResponseVMの生成
         question.Response = CreateResponse(questionModel.Response);
         //配列に追加
         questions.Add(question);
     }
 }
 public static void ExportCodebook(StudyUnitVM studyUnit)
 {
     string path = IOUtils.QuerySavePathName(Resources.ExportCodebook, null, CODEBOOK_FILTER, true); //コードブックのエクスポート
     if (string.IsNullOrEmpty(path))
     {
         return;
     }
     try
     {
         CodebookWriter writer = new CodebookWriter(studyUnit);
         writer.Write(path);
     }
     catch (Exception ex)
     {
         EDOUtils.ShowUnexpectedError(ex);
     }
 }
Beispiel #19
0
        public void WriteGroup(string path, GroupVM group, List<StudyUnitVM> studyUnits)
        {
            Debug.Assert(!string.IsNullOrEmpty(path));

            ClearError();
            XmlWriterSettings xws = new XmlWriterSettings();
            xws.Indent = true;
            xws.Encoding = Encoding.UTF8;
            using (XmlWriter xw = XmlWriter.Create(path, xws))
            {
                XElement gr = CreateGroup(group, studyUnits);
                foreach (StudyUnitVM studyUnit in studyUnits)
                {
                    XElement su = new XElement(g + TAG_STUDY_UNIT);
                    gr.Add(su);
                    this.studyUnit = studyUnit;
                    su.Add(CreateStudyUnit());
                }
                gr.Add(CreateComparison(group, studyUnits));

                XDocument doc = new XDocument(
                    DECLARATION,
                    new XElement(ddi + TAG_DDI_INSTANCE,
                        CreateIDAttribute(group.GroupModel.InstanceId),
                        CreateVersionAttribute(),
                        CreateAgencyAttribute(),
                        new XAttribute(XNamespace.Xmlns + "ddi", ddi),
                        new XAttribute(XNamespace.Xmlns + "s", s),
                        new XAttribute(XNamespace.Xmlns + "r", r),
                        new XAttribute(XNamespace.Xmlns + "a", a),
                        new XAttribute(XNamespace.Xmlns + "c", c),
                        new XAttribute(XNamespace.Xmlns + "d", d),
                        new XAttribute(XNamespace.Xmlns + "l", l),
                        new XAttribute(XNamespace.Xmlns + "p", p),
                        new XAttribute(XNamespace.Xmlns + "pi", pi),
                        new XAttribute(XNamespace.Xmlns + "g", g),
                        new XAttribute(XNamespace.Xmlns + "cm", cm),
                        new XAttribute(XNamespace.Xmlns + "dce", dce),
                        new XAttribute(XNamespace.Xmlns + "dc", dc),
                        gr
                        ));
                CheckError();
                doc.WriteTo(xw);
            }
        }
 public FundingInfoFormVM(StudyUnitVM studyUnitVM)
     : base(studyUnitVM)
 {
     fundingInfos = new ObservableCollection<FundingInfoVM>();
     int i = 1;
     foreach (FundingInfo fundingInfoModel in studyUnitVM.FundingInfoModels)
     {
         FundingInfoVM fundingInfo = new FundingInfoVM(fundingInfoModel)
         {
             Parent = this,
             OrderNo = i++,
             OrderPrefix = PREFIX
         };
         fundingInfo.InitTitle();
         fundingInfos.Add(fundingInfo);
     }
     modelSyncher = new ModelSyncher<FundingInfoVM, FundingInfo>(this, fundingInfos, studyUnitVM.FundingInfoModels);
 }
Beispiel #21
0
        public EventFormVM(StudyUnitVM studyUnit)
            : base(studyUnit)
        {
            events = new ObservableCollection<EventVM>();
            foreach (Event eventModel in studyUnit.EventModels)
            {
                EventVM ev = new EventVM(eventModel);
                InitEvent(ev);
                events.Add(ev);
            }
            modelSyncher = new ModelSyncher<EventVM, Event>(this, events, studyUnit.EventModels);

            contents = new ObservableCollection<string>();
            foreach (Option option in Options.EventTypes)
            {
                contents.Add(option.Label);
            }
        }
Beispiel #22
0
 public ConceptFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     this.conceptSchemes = new ObservableCollection<ConceptSchemeVM>();
     int i = 1;
     foreach (ConceptScheme conceptSchemeModel in studyUnit.ConceptSchemeModels)
     {
         ConceptSchemeVM conceptScheme = new ConceptSchemeVM(conceptSchemeModel) {
             Parent = this,
             OrderNo = i++,
             OrderPrefix = PREFIX
         };
         conceptScheme.InitTitle();
         conceptSchemes.Add(conceptScheme);
     }
     modelSyncher = new ModelSyncher<ConceptSchemeVM, ConceptScheme>(this, conceptSchemes, studyUnit.ConceptSchemeModels);
     allConcepts = new ObservableCollection<ConceptVM>();
 }
 public SequenceFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     controlConstructSchemes = new ObservableCollection<ControlConstructSchemeVM>();
     int i = 1;
     foreach (ControlConstructScheme model in studyUnit.ControlConstructSchemeModels)
     {
         ControlConstructSchemeVM controlConstructScheme = new ControlConstructSchemeVM(model)
         {
             Parent = this,
             OrderNo = i++,
             OrderPrefix = PREFIX
         };
         controlConstructScheme.Init();
         controlConstructSchemes.Add(controlConstructScheme);
     }
     modelSyncher = new ModelSyncher<ControlConstructSchemeVM, ControlConstructScheme>(
         this, controlConstructSchemes, studyUnit.ControlConstructSchemeModels);
 }
Beispiel #24
0
 public static bool ImportDDI(StudyUnitVM studyUnit, EDOModel edoModel)
 {
     FileDialogResult result = IOUtils.QueryOpenPathNameEx(DDI_FILE_FILTER);
     if (result == null)
     {
         return false;
     }
     if (result.FilterIndex == DDI3_FILTER_INDEX)
     {
         DDI3Reader reader = new DDI3Reader();
         return reader.Read(studyUnit, edoModel, result.FileName);
     }
     else if (result.FilterIndex == DDI2_FILTER_INDEX)
     {
         DDI2Reader reader = new DDI2Reader();
         return reader.Read(studyUnit, edoModel, result.FileName);
     }
     return false;
 }
Beispiel #25
0
 public static void ExportStudyUnit(EDOConfig config, StudyUnitVM studyUnit)
 {
     FileDialogResult result = IOUtils.QuerySavePathNameEx(string.Format(Resources.StudyUnitExport, studyUnit.Title), null, DDI_FILE_FILTER, true);
     if (result == null)
     {
         return;
     }
     if (result.FilterIndex == DDI3_FILTER_INDEX)
     {
         DDI3Writer writer = new DDI3Writer(config);
         writer.WriteStudyUnit(result.FileName, studyUnit);
         DDI3Reader.Validate(result.FileName);
     }
     else if (result.FilterIndex == DDI2_FILTER_INDEX)
     {
         DDI2Writer writer = new DDI2Writer(config);
         writer.WriteCodebook(result.FileName, studyUnit);
         DDI2Reader.Validate(result.FileName);
     }
 }
Beispiel #26
0
        public bool Read(StudyUnitVM curStudyUnit, EDOModel curEdoModel, string path)
        {
            Debug.Assert(!string.IsNullOrEmpty(path));
            if (!Validate(path))
            {
                return false;
            }

            EDOModel newEdoModel = null;
            ClearError();
            XmlReaderSettings settings = new XmlReaderSettings();
            using (XmlReader reader = XmlReader.Create(path, settings))
            {
                XDocument doc = XDocument.Load(reader);
                XElement codebookElem = doc.Element(cb + TAG_CODEBOOK);
                if (codebookElem != null)
                {
                    newEdoModel = CreateSingleModel(codebookElem);
                }
            }
            if (newEdoModel == null)
            {
                return false;
            }

            DDI2ImportOption importOption = new DDI2ImportOption();
            SelectStudyUnitWindowVM vm = new SelectStudyUnitWindowVM(newEdoModel, curEdoModel, curStudyUnit.StudyUnitModel, importOption);
            SelectStudyUnitWindow window = new SelectStudyUnitWindow(vm);
            window.Owner = Application.Current.MainWindow;
            bool? result = window.ShowDialog();
            if (result != true)
            {
                return false;
            }
            StudyUnit fromStudyUnit = newEdoModel.StudyUnits[0];
            StudyUnit toStudyUnit = curEdoModel.StudyUnits[0];
            MergeStudyUnit(fromStudyUnit, toStudyUnit, vm.ImportOption);
            return true;
        }
Beispiel #27
0
 public DataSetFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     dataSets = new ObservableCollection<DataSetVM>();
     foreach (DataSet dataSetModel in studyUnit.DataSetModels)
     {
         ObservableCollection<DataSetVariableVM> variables = new ObservableCollection<DataSetVariableVM>();
         foreach (string guid in dataSetModel.VariableGuids)
         {
             DataSetVariableVM v = createDataSetVariable(guid);
             if (v != null)
             {
                 variables.Add(v);
             }
         }
         DataSetVM dataSet = new DataSetVM(dataSetModel, variables)
         {
             Parent = this
         };
         dataSets.Add(dataSet);
     }
     modelSyncher = new ModelSyncher<DataSetVM, DataSet>(this, dataSets, studyUnit.DataSetModels);
 }
        public CoverageFormVM(StudyUnitVM studyUnit)
            : base(studyUnit)
        {
            coverage = studyUnit.CoverageModel;
            topics = new ObservableCollection<CheckOptionVM>();
            foreach (CheckOption topic in coverage.Topics) {
                topics.Add(new CheckOptionVM(this, topic));
            }
            areas = new ObservableCollection<CheckOptionVM>();
            foreach (CheckOption area in coverage.Areas)
            {
                areas.Add(new CheckOptionVM(this, area));
            }
            keywords = new ObservableCollection<KeywordVM>();
            foreach (Keyword keywordModel in coverage.Keywords)
            {
                KeywordVM keyword = new KeywordVM(keywordModel);
                InitKeyword(keyword);
                keywords.Add(keyword);
            }

            modelSyncher = new ModelSyncher<KeywordVM, Keyword>(this, keywords, coverage.Keywords);
        }
Beispiel #29
0
        private void treeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            EDOUnitVM edoUnit = DataContext as EDOUnitVM;

            if (!ProcessChanged(edoUnit, e.NewValue, e.OldValue))
            {
                return;
            }
            if (edoUnit is StudyUnitVM)
            {
                StudyUnitVM studyUnitVM = (StudyUnitVM)edoUnit;
                MenuItemVM  menuItem    = studyUnitVM.SelectedMenuItem;
                studyUnitVM.Main.IsDataSet = menuItem.IsDataSet;
                if (menuItem.IsDataSet)
                {
                    studyUnitVM.Main.IsDataSetSelected = true;
                }
                studyUnitVM.Main.IsCategory = menuItem.IsCategory;
                if (menuItem.IsCategory)
                {
                    studyUnitVM.Main.IsCategorySelected = true;
                }
                studyUnitVM.Main.IsCode = menuItem.IsCode;
                if (menuItem.IsCode)
                {
                    studyUnitVM.Main.IsCodeSelected = true;
                }
                studyUnitVM.Main.IsQuestionGroup = menuItem.IsQuestionGroup;
                if (menuItem.IsQuestionGroup)
                {
                    studyUnitVM.Main.IsQuestionGroupSelected = true;
                }
            }
            else if (edoUnit is GroupVM)
            {
            }
        }
 public SelectCategoryWindow(StudyUnitVM studyUnit)
 {
     InitializeComponent();
     this.viewModel = new SelectCategoryWindowVM(studyUnit);
     this.DataContext = this.viewModel;
 }
Beispiel #31
0
        public void WriteStudyUnit(string path, StudyUnitVM studyUnit)
        {
            Debug.Assert(!string.IsNullOrEmpty(path));
            this.studyUnit = studyUnit;

            ClearError();
            XmlWriterSettings xws = new XmlWriterSettings();
            xws.Indent = true;
            xws.Encoding = Encoding.UTF8;
            using (XmlWriter xw = XmlWriter.Create(path, xws))
            {
                XDocument doc = new XDocument(
                    DECLARATION,
                    new XElement(ddi + TAG_DDI_INSTANCE,
                        CreateIDAttribute(studyUnit.StudyUnitModel.InstanceId),
                        CreateVersionAttribute(),
                        CreateAgencyAttribute(),
                        new XAttribute(XNamespace.Xmlns + "ddi", ddi),
                        new XAttribute(XNamespace.Xmlns + "s", s),
                        new XAttribute(XNamespace.Xmlns + "r", r),
                        new XAttribute(XNamespace.Xmlns + "a", a),
                        new XAttribute(XNamespace.Xmlns + "c", c),
                        new XAttribute(XNamespace.Xmlns + "d", d),
                        new XAttribute(XNamespace.Xmlns + "l", l),
                        new XAttribute(XNamespace.Xmlns + "p", p),
                        new XAttribute(XNamespace.Xmlns + "pi", pi),
                        new XAttribute(XNamespace.Xmlns + "dce", dce),
                        new XAttribute(XNamespace.Xmlns + "dc", dc),
                        CreateStudyUnit())
                );
                CheckError();
                doc.WriteTo(xw);
            }
        }