Пример #1
0
        /// <summary>
        /// UI facing method for adding a reference node (for use from the context menu to add a new reference)
        /// </summary>
        /// <param name="tnLayout"></param>
        /// <param name="sFile"></param>
        /// <param name="bSetAsDefault"></param>
        /// <param name="zLayout"></param>
        /// <returns>The new Reference tree node or null if there is an existing reference by the same definition</returns>
        private static TreeNode AddReferenceNode(TreeNode tnLayout, string sFile, bool bSetAsDefault,
                                                 ProjectLayout zLayout)
        {
            var sProjectPath = ProjectManager.Instance.ProjectPath;
            var zReference   = new ProjectLayoutReference
            {
                Default      = bSetAsDefault,
                RelativePath = IOUtils.GetRelativePath(sProjectPath,
                                                       sFile)
            };

            return(AddReferenceNode(tnLayout, zReference, zLayout));
        }
Пример #2
0
        public void GetProjectDefineData(ProjectLayoutReference zReference, List <List <string> > listDefineData)
        {
            if (null == ProjectManager.Instance.ProjectFilePath)
            {
                return;
            }

            var sReferencePath =
                Path.GetDirectoryName(ProjectManager.Instance.ProjectFilePath)
                + Path.DirectorySeparatorChar
                + Path.GetFileNameWithoutExtension(ProjectManager.Instance.ProjectFilePath)
                + ".csv";

            GetData(sReferencePath, listDefineData, false, 1, Deck.DEFINES_DATA_POSTFIX);
        }
Пример #3
0
        public void SetAndLoadLayout(ProjectLayout zLayout, bool bExporting, ProgressReporterProxy zReporterProxy)
        {
            EmptyReference = false;

            CardLayout = zLayout;

            ResetPrintCardIndex();
            ProjectLayoutReference[] zReferenceData = null;

            if (null != CardLayout.Reference)
            {
                if (CardLayout.combineReferences)
                {
                    var listReferences = new List <ProjectLayoutReference>();
                    ProjectLayoutReference zDefaultReference = null;
                    foreach (var zReference in CardLayout.Reference)
                    {
                        if (zReference.Default)
                        {
                            zDefaultReference = zReference;
                        }
                        else
                        {
                            listReferences.Add(zReference);
                        }
                    }
                    // move the default reference to the front of the set
                    if (null != zDefaultReference)
                    {
                        listReferences.Insert(0, zDefaultReference);
                    }
                    zReferenceData = listReferences.Count == 0 ? null : listReferences.ToArray();
                }
                else
                {
                    foreach (var zReference in CardLayout.Reference)
                    {
                        if (zReference.Default)
                        {
                            zReferenceData = new ProjectLayoutReference[] { zReference };
                            break;
                        }
                    }
                }
            }
            new DeckReader(this, zReporterProxy).InitiateReferenceRead(zReferenceData, bExporting);
        }
Пример #4
0
        /// <summary>
        /// Internal/Project load handling for adding a reference node.
        /// </summary>
        /// <param name="tnLayout"></param>
        /// <param name="zReference"></param>
        /// <param name="zLayout">The layout to update the references for (may be null if no update is needed - ie. project loading)</param>
        /// <returns></returns>
        private static TreeNode AddReferenceNode(TreeNode tnLayout, ProjectLayoutReference zReference,
                                                 ProjectLayout zLayout)
        {
            var sProjectPath       = ProjectManager.Instance.ProjectPath;
            var sFullReferencePath = zReference.RelativePath;

            if (!String.IsNullOrEmpty(sProjectPath))
            {
                sFullReferencePath = sProjectPath + Path.DirectorySeparatorChar + zReference.RelativePath;
            }

            if (zLayout != null && zLayout.Reference != null)
            {
                // duplicate check
                foreach (var zExistingReference in zLayout.Reference)
                {
                    if (zExistingReference.RelativePath.Equals(zReference.RelativePath,
                                                               StringComparison.CurrentCultureIgnoreCase))
                    {
                        return(null);
                    }
                }
            }

            var tnReference = new TreeNode(Path.GetFileName(sFullReferencePath))
            {
                BackColor   = zReference.Default ? DEFAULT_REFERENCE_COLOR : Color.White,
                ToolTipText = zReference.RelativePath,
                Tag         = zReference
            };

            tnLayout.Nodes.Add(tnReference);

            if (null != zLayout)
            {
                // update the ProjectLayout
                var listReferences = new List <ProjectLayoutReference>();
                if (null != zLayout.Reference)
                {
                    listReferences.AddRange(zLayout.Reference);
                }
                listReferences.Add(zReference);
                zLayout.Reference = listReferences.ToArray();
            }

            return(tnReference);
        }
Пример #5
0
        public CSVReferenceReader(ProjectLayoutReference zReference)
        {
            var previousCurrentDirectory = Directory.GetCurrentDirectory();

            if (null != ProjectManager.Instance.ProjectPath && Directory.Exists(ProjectManager.Instance.ProjectPath))
            {
                Directory.SetCurrentDirectory(ProjectManager.Instance.ProjectPath);
                ReferencePath = (File.Exists(zReference.RelativePath)
                                ? Path.GetFullPath(zReference.RelativePath)
                                : ProjectManager.Instance.ProjectPath + zReference.RelativePath);
            }
            else
            {
                ReferencePath = File.Exists(zReference.RelativePath) ? Path.GetFullPath(zReference.RelativePath) : zReference.RelativePath;
            }
            Directory.SetCurrentDirectory(previousCurrentDirectory);
        }
Пример #6
0
 public static ReferenceReader GetReader(ProjectLayoutReference zReference)
 {
     if (zReference == null)
     {
         return(null);
     }
     if (zReference.RelativePath.StartsWith(CardMakerConstants.GOOGLE_REFERENCE +
                                            CardMakerConstants.GOOGLE_REFERENCE_SPLIT_CHAR))
     {
         var zReader = new GoogleReferenceReader(zReference);
         if (!CardMakerInstance.GoogleCredentialsInvalid)
         {
             return(zReader);
         }
     }
     return(new CSVReferenceReader(zReference));
 }
Пример #7
0
        public GoogleReferenceReader(ProjectLayoutReference zReference)
        {
            ReferencePath          = zReference.RelativePath;
            m_zSpreadsheetsService = GoogleSpreadsheet.GetSpreadsheetsService(APP_NAME, CLIENT_ID,
                                                                              CardMakerInstance.GoogleAccessToken);

            LoadCache();

            if (!IsAllDataCached() || CardMakerInstance.ForceDataCacheRefresh)
            {
                // local cache is not enough to load this reference, check token access
                if (!GoogleApi.VerifyAccessToken(CardMakerInstance.GoogleAccessToken))
                {
                    CardMakerInstance.GoogleCredentialsInvalid = true;
                }
            }
        }
Пример #8
0
        public static ReferenceReader GetReader(ProjectLayoutReference zReference)
        {
            if (zReference == null)
            {
                return(null);
            }
            if (zReference.RelativePath.StartsWith(GoogleSpreadsheetReference.GOOGLE_REFERENCE +
                                                   GoogleSpreadsheetReference.GOOGLE_REFERENCE_SPLIT_CHAR))
            {
                var zReader = new GoogleReferenceReader(zReference);
                return(CardMakerInstance.GoogleCredentialsInvalid ? null : zReader);
            }

            if (zReference.RelativePath.StartsWith(ExcelSpreadsheetReference.EXCEL_REFERENCE +
                                                   ExcelSpreadsheetReference.EXCEL_REFERENCE_SPLIT_CHAR))
            {
                return(new ExcelReferenceReader(zReference));
            }
            return(new CSVReferenceReader(zReference));
        }
Пример #9
0
 public GoogleReferenceReader(ProjectLayoutReference zReference) : this()
 {
     ReferencePath = zReference.RelativePath;
 }
Пример #10
0
 public override void GetReferenceData(ProjectLayoutReference zReference, List <List <string> > listReferenceData)
 {
     GetData(GoogleSpreadsheetReference.parse(ReferencePath), listReferenceData, false);
 }
Пример #11
0
 public void GetDefineData(ProjectLayoutReference zReference, List <List <string> > listDefineData)
 {
     GetData(ReferencePath, listDefineData, false, 1, Deck.DEFINES_DATA_POSTFIX);
 }
Пример #12
0
 /// <summary>
 /// Reads the reference define data into the specified list
 /// </summary>
 /// <param name="zReference">The reference meta data</param>
 /// <param name="listReferenceData">The list to append</param>
 public abstract void GetDefineData(ProjectLayoutReference zReference, List <List <string> > listDefineData);
Пример #13
0
        public void SetAndLoadLayout(ProjectLayout zLayout, bool bExporting)
        {
            CardLayout = zLayout;

            ResetPrintCardIndex();

            var bReferenceFound = false;

            if (null != CardLayout.Reference)
            {
                ProjectLayoutReference[] zReferenceData = null;

                if (CardLayout.combineReferences)
                {
                    var listReferences = new List <ProjectLayoutReference>();
                    ProjectLayoutReference zDefaultReference = null;
                    foreach (var zReference in CardLayout.Reference)
                    {
                        if (zReference.Default)
                        {
                            zDefaultReference = zReference;
                        }
                        else
                        {
                            listReferences.Add(zReference);
                        }
                    }
                    // move the default reference to the front of the set
                    if (null != zDefaultReference)
                    {
                        listReferences.Insert(0, zDefaultReference);
                    }
                    zReferenceData = listReferences.Count == 0 ? null : listReferences.ToArray();
                }
                else
                {
                    foreach (var zReference in CardLayout.Reference)
                    {
                        if (zReference.Default)
                        {
                            zReferenceData = new ProjectLayoutReference[] { zReference };
                            break;
                        }
                    }
                }
                var zWait = new WaitDialog(
                    1,
                    ReadData,
                    zReferenceData,
                    "Loading Data",
                    null,
                    400);
#warning this needs to be pulled into a deck loader
                CardMakerInstance.ApplicationForm.InvokeAction(() => zWait.ShowDialog(CardMakerInstance.ApplicationForm));
                if (!bExporting)
                {
                    if (CardMakerInstance.GoogleCredentialsInvalid)
                    {
                        CardMakerInstance.GoogleCredentialsInvalid = false;
                        GoogleAuthManager.Instance.FireGoogleAuthCredentialsErrorEvent(
                            () => LayoutManager.Instance.InitializeActiveLayout());
                    }
                }
                bReferenceFound = zWait.ThreadSuccess;
            }

            if (!bReferenceFound)
            {
                // setup the placeholder single card
                var zWait = new WaitDialog(
                    1,
                    ReadData,
                    null,
                    "Loading Data",
                    null,
                    400)
                {
                    CancelButtonVisibile = false
                };
                CardMakerInstance.ApplicationForm.InvokeAction(() => zWait.ShowDialog(CardMakerInstance.ApplicationForm));
            }
        }
Пример #14
0
 public void GetReferenceData(ProjectLayoutReference zReference, List <List <string> > listReferenceData)
 {
     GetData(ReferencePath, listReferenceData, true, 0);
 }
Пример #15
0
 public GoogleReferenceReader(ProjectLayoutReference zReference) : this()
 {
     // Google references are stored in the relative path just like a local CSV would be
     ReferencePath = zReference.RelativePath;
 }
Пример #16
0
 public override void GetDefineData(ProjectLayoutReference zReference, List <List <string> > listDefineData)
 {
     GetData(GoogleSpreadsheetReference.parse(ReferencePath), listDefineData, true, Deck.DEFINES_DATA_POSTFIX);
 }
Пример #17
0
        public void GetProjectDefineData(ProjectLayoutReference zReference, List <List <string> > listDefineData)
        {
            var sProjectDefineSheetReference = GetDefinesReference();

            GetData(sProjectDefineSheetReference, listDefineData, true);
        }