コード例 #1
0
        void Function_Visible(string secondary, bool visible)
        {
            if (secondary != Constants.BLANK)
            {
                string[] windows = GetNotesToOperateOn(secondary);
                if (windows != null)
                {
                    int             counter  = 0;
                    LayoutPanelBase MyLayout = Layout;
                    GetMasterLayoutToUse(ref MyLayout);

                    foreach (string notename in windows)
                    {
                        if (notename != Constants.BLANK)
                        {
                            counter++;
                            NoteDataInterface note = MyLayout.FindNoteByName(notename);
                            if (note != null)
                            {
                                note = MyLayout.GoToNote(note);
                                if (note != null)
                                {
                                    note.Visible = visible;
                                    note.UpdateLocation();
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        void Function_EvenWindows(string secondary, bool alpha)
        {
            if (secondary != Constants.BLANK)
            {
                string[] windows = GetNotesToOperateOn(secondary);
                if (windows != null)
                {
                    int             counter  = 0;
                    LayoutPanelBase MyLayout = Layout;
                    GetMasterLayoutToUse(ref MyLayout);

                    // initial implementation just assuming 2 notes and will split 50/50
                    int Width  = MyLayout.Width;
                    int Height = MyLayout.Height - MyLayout.HeightOfToolbars();
                    foreach (string notename in windows)
                    {
                        if (notename != Constants.BLANK)
                        {
                            counter++;
                            NoteDataInterface note = MyLayout.FindNoteByName(notename);
                            if (note != null)
                            {
                                note = MyLayout.GoToNote(note);
                                if (note != null)
                                {
                                    int NewWidth = Width / windows.Length;
                                    note.Width  = NewWidth;
                                    note.Height = Height;

                                    //note.ParentNotePanel.Top =0;
                                    int NewTop  = 0;
                                    int newLeft = 0;
                                    if (1 == counter)
                                    {
                                        newLeft = 0;
                                    }
                                    else
                                    {
                                        newLeft = ((counter - 1) * NewWidth);
                                        //											NewMessage.Show ("Setting " + note.Caption + " " + newLeft.ToString ());
                                        //											note.ParentNotePanel.Left = newLeft;
                                    }
                                    if (note is NoteDataXML_SystemOnly)
                                    {
                                        //NewMessage.Show ("System Note");
                                        note.Maximize(true);
                                        note.Maximize(false);
                                    }
                                    note.Location = new Point(newLeft, NewTop);
                                    note.UpdateLocation();
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren(Layout);
            try {
                BottomInfo        = new Panel();
                BottomInfo.Dock   = DockStyle.Bottom;
                BottomInfo.Height = 75;

                ParentNotePanel.Controls.Add(BottomInfo);


                ToolStripMenuItem SelectItem = new ToolStripMenuItem();
                SelectItem.Text   = Loc.Instance.GetString("Select File");
                SelectItem.Click += HandleSelectFile;

                ToolStripMenuItem RefreshItem = new ToolStripMenuItem();
                RefreshItem.Text   = Loc.Instance.GetString("Get From File");
                RefreshItem.Click += HandleRefreshClick;

                ToolStripMenuItem SendTo = new ToolStripMenuItem();
                SendTo.Text   = Loc.Instance.GetString("Send To File");
                SendTo.Click += HandleSendToClick;

                LastUpdateDate        = new Label();
                LastUpdateDate.Text   = ImportTime();              //lastRefresh.ToString ();
                LastUpdateDate.Dock   = DockStyle.Top;
                LastUpdateDate.Click += (object sender, EventArgs e) => HandleRefresh();

                LastExportDate        = new Label();
                LastExportDate.Text   = ExportTime();
                LastExportDate.Dock   = DockStyle.Top;
                LastExportDate.Click += (object sender, EventArgs e) => this.SendTo();

                FileShown        = new Label();
                FileShown.Click += HandleFileShownClick;
                //FileShown.Text = LinkedFile;
                FileShown.Dock = DockStyle.Top;

                // not actually changing the name but updated the label with a shortened version of it
                ChangeName(LinkedFile);

                BottomInfo.Controls.Add(LastUpdateDate);
                BottomInfo.Controls.Add(LastExportDate);
                BottomInfo.Controls.Add(FileShown);

                properties.DropDownItems.Add(new ToolStripSeparator());
                properties.DropDownItems.Add(SelectItem);
                properties.DropDownItems.Add(RefreshItem);
                properties.DropDownItems.Add(SendTo);
            } catch (Exception ex) {
                NewMessage.Show(ex.ToString());
            }
        }
コード例 #4
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren(Layout);
            try {
                BottomInfo        = new Panel();
                BottomInfo.Dock   = DockStyle.Bottom;
                BottomInfo.Height = 75;


                BottomInfo.AutoScroll = true;

                refreshButton        = new Button();
                refreshButton.Dock   = DockStyle.Left;
                refreshButton.Name   = REFRESH_BUTTON;
                refreshButton.Text   = Loc.Instance.GetString("O");
                refreshButton.Click += (object sender, EventArgs e) => {
                    refreshButton.Cursor  = Cursors.WaitCursor;
                    refreshButton.Enabled = false;
                    ResetBackgroundWorker();
                };

                BottomInfo.Controls.Add(refreshButton);

                ParentNotePanel.Controls.Add(BottomInfo);


                ToolStripMenuItem TokenItem =
                    LayoutDetails.BuildMenuPropertyEdit(Loc.Instance.GetString("Token: [[{0}]]"),
                                                        Token,
                                                        Loc.Instance.GetString("Enter the token you use to annotate facts discussing this topic in the text."),
                                                        HandleTokenChange);

                properties.DropDownItems.Add(new ToolStripSeparator());
                properties.DropDownItems.Add(TokenItem);


                ToolStripMenuItem FactParseNoteItem =
                    LayoutDetails.BuildMenuPropertyEdit(Loc.Instance.GetString("Note With Fact Details: {0}"),
                                                        FactParseNote,
                                                        Loc.Instance.GetString("Indicate a note on this layout that contains fact-parsing instructions."),
                                                        HandleFactChange);


                properties.DropDownItems.Add(FactParseNoteItem);
            } catch (Exception ex) {
                NewMessage.Show(ex.ToString());
            }


            UpdateView();
        }
コード例 #5
0
 static void GetMasterLayoutToUse(ref LayoutPanelBase MyLayout)
 {
     if (MyLayout.GetIsChild == true)
     {
         LayoutPanelBase MyPossibleLayout = MyLayout.GetAbsoluteParent();
         if (MyPossibleLayout != null)
         {
             if (MyPossibleLayout.GetIsSystemLayout == true)
             {
                 // we only override if we have found the system layout? Will this fix
                 // the issue of not finding correct width of immediate parent?
                 // IF NOT: only revert to Absolute Layout if a note is not found
                 MyLayout = MyPossibleLayout;
             }
         }
     }
 }
コード例 #6
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren(Layout);

            if (PrimaryDetails.Count == 0)
            {
                PrimaryDetails.Add("beep");
            }
            if (SecondaryDetails.Count == 0)
            {
                SecondaryDetails.Add(Constants.BLANK);
            }


            ParentNotePanel.Height      = this.CaptionLabel.Height;
            this.MaximizeButton.Visible = false;
            this.MinimizeButton.Visible = false;
            this.captionLabel.Visible   = false;
            ActionButton        = new ToolStripButton();
            ActionButton.Text   = this.captionLabel.Text;
            ActionButton.Click += HandleActionButtonClick;
            CaptionLabel.Items.Insert(0, ActionButton);

            ToolStripMenuItem PrimaryDetailLink =
                LayoutDetails.BuildMenuPropertyEdit(Loc.Instance.GetString("Primary: {0}"),
                                                    PrimaryDetails[0],
                                                    Loc.Instance.GetString("Enter main action (Beep, evenwindows_alpha)."), HandlePrimaryChange);

            ToolStripMenuItem SecondaryDetailLink =
                LayoutDetails.BuildMenuPropertyEdit(Loc.Instance.GetString("Secondary: {0}"),
                                                    SecondaryDetails[0],
                                                    Loc.Instance.GetString("Enter secondary action (Comma delimited list of notes for evenwindows_alpha)."),
                                                    HandleSecondaryChange);

            properties.DropDownItems.Add(new ToolStripSeparator());
            properties.DropDownItems.Add(PrimaryDetailLink);
            properties.DropDownItems.Add(SecondaryDetailLink);
        }
コード例 #7
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren(Layout);
            ParentNotePanel.BorderStyle = BorderStyle.Fixed3D;
            CaptionLabel.Dock           = DockStyle.Top;


            ToolStripButton UpdateGuid = new ToolStripButton();

            UpdateGuid.Text   = Loc.Instance.GetString("Verify Parent");
            UpdateGuid.Click += HandleVerifyParentClick;
            this.properties.DropDownItems.Add(UpdateGuid);

            panelLayout = new LayoutPanel(Layout.GUID, false);
            panelLayout.SetSubNoteSaveRequired = Layout.SetSaveRequired;

            // must set the Parent before loading
            panelLayout.Parent = ParentNotePanel;

            // load the layout based on the note
            panelLayout.LoadLayout(this.GuidForNote, true, Layout.GetLayoutTextEditContextStrip());


            panelLayout.Visible = true;
            panelLayout.Dock    = DockStyle.Fill;
            panelLayout.BringToFront();
            panelLayout.SetParentLayoutCurrentNote = Layout.SetCurrentTextNote;

            /* I do not know why I duplicated this!
             * ToolStripButton ShowTabs = new ToolStripButton(Loc.Instance.GetString("Show Tabs?"));
             * ShowTabs.CheckOnClick = true;
             * ShowTabs.Checked = panelLayout.ShowTabs;
             * ShowTabs.CheckedChanged+= HandleCheckedChanged;
             *
             * properties.DropDownItems.Add (ShowTabs);
             */
        }
コード例 #8
0
 public static string LookupFilter(string filter, LayoutPanelBase OverridePanelToUse)
 {
     LayoutPanelBase LayoutToUse = LayoutDetails.Instance.TableLayout;
     if (null != OverridePanelToUse) {
         LayoutToUse = OverridePanelToUse;
     }
     if (filter != Constants.BLANK) {
         List<string> results = LayoutToUse.GetListOfStringsFromSystemTable (LayoutDetails.SYSTEM_QUERIES, 2, String.Format ("1|{0}", filter));
         if (results != null && results.Count > 0) {
             return results [0];
         }
     }
     return Constants.BLANK;
 }
コード例 #9
0
 public static List<NameAndGuid> GetListOfLayouts(string filter, string likename, bool FullTextSearch, LayoutPanelBase OverrideLayoutToUseToFindTable)
 {
     return GetListOfLayouts(filter, likename, FullTextSearch, OverrideLayoutToUseToFindTable, Constants.BLANK);
 }
コード例 #10
0
        public dashboardMarketEdit(DataTable _dataSource, Action<string, string> _UpdateSelectedMarket, LayoutPanelBase _CurrentLayout)
        {
            CurrentLayout = _CurrentLayout;
            if (null == _dataSource)
                throw new Exception ("invalid data source passed in");
            UpdateSelectedMarket = _UpdateSelectedMarket;

            MarketFilters = BuildMarketFilterBox ();

            //	NewMessage.Show ("boo");
            ListOfMarkets = new ListBox ();

            if (_dataSource.PrimaryKey.Length == 0) {
                _dataSource.PrimaryKey = new DataColumn[] { _dataSource.Columns ["Guid"] };
            }

            ViewOfTheData = new DataView (_dataSource);
            ViewOfTheData.Sort = "Caption ASC";
            ViewOfTheData.ListChanged += new System.ComponentModel.ListChangedEventHandler (OnListChanged);

            //ViewOfTheData.RowFilter = BuildRowFilter();

            ListOfMarkets.DataSource = ViewOfTheData;//_dataSource;
            ListOfMarkets.SelectedIndexChanged += HandleMarketListSelectedIndexChanged;
            ListOfMarkets.DisplayMember = "Caption";

            //ListOfMarkets.DoubleClick+= HandleListOfDoubleClick;
            //	ListOfMarkets.MouseDown+= HandleListOfMarketsMouseDown;

            //ListOfMarkets.Sorted = true;
            //ListOfMarkets.Width = 200;
            //
            // TAB CONTROL SIDE
            //

            TabControl Tabs = new TabControl ();
            Tabs.Dock = DockStyle.Fill;

            TabPage MarketEditing = new TabPage ();
            MarketEditing.Text = Loc.Instance.GetString ("Market Details");

            TabPage MarketSubmissions = new TabPage ();
            MarketSubmissions.Text = Loc.Instance.GetString ("Market Submissions");

            TabPage MarketNotes = new TabPage ();
            MarketNotes.Text = Loc.Instance.GetString ("Market Notes");

            Tabs.TabPages.Add (MarketEditing);
            Tabs.TabPages.Add (MarketNotes);
            Tabs.TabPages.Add (MarketSubmissions);

            Tabs.SelectedIndexChanged += HandleMiniTabSelectedIndexChanged;

            SubLabel = new Label ();
            SubLabel.Text = Loc.Instance.GetString ("Submissions");
            SubLabel.Dock = DockStyle.Top;
            DestLabel = new Label ();
            DestLabel.Dock = DockStyle.Bottom;
            DestLabel.Text = Loc.Instance.GetString ("Destinations");

            PreviousSubmissions = new ListBox ();
            PreviousSubmissions.DoubleClick += HandlePreviousSubmissionsDoubleClick;
            PreviousSubmissions.Dock = DockStyle.Fill;
            //PreviousSubmissions.Height = 100;

            Destinations = new ListBox ();
            Destinations.Dock = DockStyle.Bottom;
            Destinations.Height = 100;

            tmpEditor = new PropertyGrid ();
            tmpEditor.Dock = DockStyle.Fill;
            tmpEditor.PropertyValueChanged += HandlePropertyValueChanged;
            tmpEditor.Height = 300;

            MarketEditing.Controls.Add (tmpEditor);
            MarketSubmissions.Controls.Add (DestLabel);
            MarketSubmissions.Controls.Add (PreviousSubmissions);
            PreviousSubmissions.BringToFront ();

            MarketSubmissions.Controls.Add (SubLabel);
            MarketSubmissions.Controls.Add (Destinations);

            //
            // MAIN TABlE
            //

            //	Panel EasyMarketEdit = new Panel();

            //	EasyMarketEdit.BackColor = Color.Green;
            //	EasyMarketEdit.Height = 200;

            //	EasyMarketEdit.Dock = DockStyle.Fill;

            //	EasyMarketEdit.Controls.Add (Tabs);

            //	tmpEditor.Enabled = false;
            tmpEditor.BringToFront ();

            AddMarket = new Button ();
            AddMarket.Dock = DockStyle.Bottom;
            AddMarket.Text = Loc.Instance.GetString ("Add Market");
            AddMarket.Click += HandleAddMarketClick;

            EditMarket = new Button ();
            EditMarket.Text = Loc.Instance.GetString ("Save Edits");
            EditMarket.Dock = DockStyle.Fill;
            EditMarket.Enabled = false;
            EditMarket.Click += HandleEditMarketClick;

            EditMarketCancel = new Button ();
            EditMarketCancel.Dock = DockStyle.Fill;
            EditMarketCancel.Text = Loc.Instance.GetString ("Cancel Edit");
            EditMarketCancel.Enabled = false;
            EditMarketCancel.Click += HandleEditMarketCancelClick;

            TableLayoutPanel MarketListPanel = new TableLayoutPanel ();

            MarketListPanel.RowCount = 2;
            MarketListPanel.ColumnCount = 3;

            MarketListPanel.Controls.Add (EditMarket, 1, 0);
            MarketListPanel.Controls.Add (AddMarket, 0, 0);
            MarketListPanel.Controls.Add (EditMarketCancel, 2, 0);

            //MarketListPanel.Controls.Add (EditMarketCancel, 1, 0);

            //MarketListPanel.Controls.Add (ListOfMarkets, 0, 1);
            MarketListPanel.Controls.Add (Tabs, 1, 1);
            MarketListPanel.SetColumnSpan (Tabs, 2);

            //	MarketListPanel.Controls.Add (PreviousSubmissions, 1, 2);

            //	MarketListPanel.Controls.Add (AddMarket, 0, 3);

            Panel RightSide = new Panel();

            RightSide.Controls.Add (MarketFilters);
            RightSide.Controls.Add (ListOfMarkets);

            ListOfMarkets.Dock = DockStyle.Fill;
            ListOfMarkets.BringToFront();
            RightSide.Dock = DockStyle.Fill;
            RightSide.BringToFront ();

            MarketListPanel.Controls.Add (RightSide, 0, 1);

            MarketListPanel.SetRowSpan(Tabs, 2);
            MarketListPanel.SetRowSpan(RightSide, 2);
            MarketListPanel.Dock = DockStyle.Fill;

            //this.Controls.Add (AddMarket);

            //NewMessage.Show ("boo2");
            this.Controls.Add (MarketListPanel);
            MarketListPanel.BringToFront();
            //	AddMarket.SendToBack();

            //
            // Setup Market Notes Pages
            //

            richBox = new RichTextBox();
            MarketNotes.Controls.Add (richBox);
            richBox.Dock = DockStyle.Fill;
            richBox.KeyDown+= HandleNotesKeyDown;

            MarketListPanel.ColumnStyles.Clear();
            for (int i = 0; i < MarketListPanel.ColumnCount; i++)
            {
                ColumnStyle style = new ColumnStyle(SizeType.Percent, 33.0f);
                MarketListPanel.ColumnStyles.Add(style);
            }

            MarketListPanel.RowStyles.Clear();
            for (int i = 0; i < MarketListPanel.RowCount; i++)
            {
                MarketListPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize));
            }
        }
コード例 #11
0
        /// <summary>
        /// Loads from the appropriate Data Location. If pass Layout as null this is a REMOTE NOTE load, meaning we are grabbing this information without
        ///    the layout being loaded into a LayoutPanel.
        /// </summary>
        /// <param name='GUID'>
        /// The unique identifier representing this Layout
        /// </param>
        /// <returns>
        /// <c>true</c>, if from was loaded, <c>false</c> otherwise.
        /// </returns>
        /// <param name='Layout'>
        /// 
        /// </param>
        public bool LoadFrom(LayoutPanelBase LayoutPanelToLoadNoteOnto)
        {
            BaseDatabase MyDatabase = CreateDatabase ();

            if (MyDatabase == null) {
                throw new Exception ("Unable to create database in LoadFrom");
            }
            bool Success = false;

            List<object[]> myList = null;
            // we only care about FIRST ROW. THere should never be two matches on a GUID
            TimeSpan time;
            time = CoreUtilities.TimerCore.Time (() => {
                myList = MyDatabase.GetValues (dbConstants.table_name, dbConstants.Columns
                                  , dbConstants.GUID, LayoutGUID);
            });
            lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.TIMING, String.Format ("GETVALUES for {0}  took {1}", this.ToString (), time));

            if (myList != null)
            {

                if (myList.Count > 0) {

                object[] result = myList [0];

                // result [0] =  id?
                // result [1] =  guid?
                // result [2] =  xm

                // deserialize from database and load into memor
                if (result != null && result.Length > 0) {

                    //
                    // LINK TABLE SECTION, start
                    //

                    // skip linktables if we are a child
                    // LayoutPanelToLoadNoteOnto will be null when doing searches, which mean swe should not
                    // try to load link tables, for sure.
                    if (false == IsSubPanel && LayoutPanelToLoadNoteOnto != null) {

                        // Deal with LINKTABLE first, as it causes complexity elsewhere
                        NoteDataXML_Table table = new NoteDataXML_Table ();
                        lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.MESSAGE, "LinkTableLoadData = " + result [dbConstants.LINKTABLE.Index].ToString ());
                        if (result [dbConstants.LINKTABLE.Index].ToString () != Constants.BLANK) {
                            time = CoreUtilities.TimerCore.Time (() => {
                                // Loading existing table
                                System.IO.StringReader LinkTableReader = new System.IO.StringReader (result [dbConstants.LINKTABLE.Index].ToString ());
                                System.Xml.Serialization.XmlSerializer LinkTableXML = new System.Xml.Serialization.XmlSerializer (typeof(NoteDataXML_Table));

                                table = (NoteDataXML_Table)LinkTableXML.Deserialize (LinkTableReader);
            //						if (table != null)
            //						{
            //							MyLinkTable.SetTable (table.dataSource);
            //						}
                                //NewMessage.Show("Loading a link table with GUID = " + table.GuidForNote);
                                LinkTableXML = null;
                                LinkTableReader.Close ();
                                LinkTableReader.Dispose ();
                            });
                            lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.TIMING, String.Format ("LINKTABLE for {0}  took {1}", this.ToString (), time));

                        }

                        time = CoreUtilities.TimerCore.Time (() => {
                            CreateLinkTableIfNecessary (table, LayoutPanelToLoadNoteOnto);
                        });
                        lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.TIMING, String.Format ("CREATELINKTABLE for {0}  took {1}", this.ToString (), time));
                    }
                    //
                    // LINK TABLE SECTION, end
                    //

                    time = CoreUtilities.TimerCore.Time (() => {
                        // Fill in LAYOUT specific details
                        Status = result [dbConstants.STATUS.Index].ToString ();
                        Name = result [dbConstants.NAME.Index].ToString ();
                        if (result [dbConstants.SHOWTABS.Index].ToString () != Constants.BLANK) {
                            ShowTabs = (bool)result [dbConstants.SHOWTABS.Index];
                        } else {
                            //ToDo: This does not seem growable easily
                            ShowTabs = true;
                        }
                        if (result [dbConstants.SUBPANEL.Index].ToString () != Constants.BLANK) {
                            IsSubPanel = (bool)result [dbConstants.SUBPANEL.Index];
                        } else {
                            IsSubPanel = false;
                        }
                        if (result [dbConstants.MAXIMIZETABS.Index].ToString () != Constants.BLANK) {
                            MaximizeTabs = (bool)result [dbConstants.MAXIMIZETABS.Index];
                        } else
                            MaximizeTabs = true;
                        int stars = 0;
                        if (Int32.TryParse (result [dbConstants.STARS.Index].ToString (), out stars) == false)
                            Stars = 0;
                        else
                            Stars = stars;
                        int hits = 0;
                        if (Int32.TryParse (result [dbConstants.HITS.Index].ToString (), out hits) == false)
                            Hits = 0;
                        else
                            Hits = hits;
                        DateTime date = DateTime.Now;
                        if (DateTime.TryParse (result [dbConstants.DATECREATED.Index].ToString (), out date) == false)
                            DateCreated = DateTime.Now;
                        else
                            DateCreated = date;
                        date = DateTime.Now;
                        if (DateTime.TryParse (result [dbConstants.DATEEDITED.Index].ToString (), out date) == false)
                            DateEdited = DateTime.Now;
                        else
                            DateEdited = date;
                        Notebook = result [dbConstants.NOTEBOOK.Index].ToString ();
                        Section = result [dbConstants.SECTION.Index].ToString ();
                        Subtype = result [dbConstants.TYPE.Index].ToString ();
                        Source = result [dbConstants.SOURCE.Index].ToString ();
                            string potentialBackColor = result [dbConstants.BACKGROUNDCOLOR.Index].ToString();
                            if (potentialBackColor != Constants.BLANK)
                            {
                                BackgroundColor = Color.FromArgb(Int32.Parse (potentialBackColor));
                            }
                            else
                            {
                                BackgroundColor = DefaultBackColor;
                            }

                        Blurb = result[dbConstants.BLURB.Index].ToString ();

                            ParentGuid = result[dbConstants.PARENT_GUID.Index].ToString();

                        int words = 0;
                        if (Int32.TryParse (result [dbConstants.WORDS.Index].ToString (), out words))
                            Words = words;
                        else
                            Words = 0;

                        Keywords = result [dbConstants.KEYWORDS.Index].ToString ();
                        // Fill in XML details
                    });
                    lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.TIMING, String.Format ("ASSIGNVALUES for {0}  took {1}", this.ToString (), time));
                    List<NoteDataXML> ListAsDataObjectsOfType = null;
                    time = CoreUtilities.TimerCore.Time (() => {
                        //dataForThisLayout
                        System.IO.StringReader reader = new System.IO.StringReader (result [dbConstants.XML.Index].ToString ());
                        System.Xml.Serialization.XmlSerializer test = new System.Xml.Serialization.XmlSerializer (typeof(System.Collections.Generic.List<NoteDataXML>),
                                                                                                             LayoutDetails.Instance.ListOfTypesToStoreInXML ());

                        try {
                            // have to load it in an as array of target type and then convert
                            if (result [dbConstants.XML.Index].ToString () != Constants.BLANK) {
                                ListAsDataObjectsOfType = (System.Collections.Generic.List<NoteDataXML>)test.Deserialize (reader);
                            } else {
                                lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.ERROR, String.Format ("For note '{0}' the XML was blank! This happens when there is a panel with no note in it. Not serious", Name));
                            }
                        } catch (System.InvalidOperationException e) {
                            string exception = e.ToString ();
                            int pos = exception.IndexOf ("name");
                            int pos2 = exception.IndexOf ("namespace");
                            if (pos2 < pos)
                                pos2 = pos + 1;
                            try {
                                string notetype = exception.Substring (pos, pos2 - pos - 2);
                                string message =
            Loc.Instance.Cat.GetStringFmt ("The notetype {0} was present in this Layout but not loaded in memory! This means that the AddIn used to add this note to this Layout has been removed. Loading of this layout is now aborted. Please exit this note and close it to prevent data loss and reinstall the disabled AddIn", notetype);
                                NewMessage.Show (message);
                            } catch (Exception) {
                                NewMessage.Show ("unknown error in LoadFrom");
                            }
                        } catch (Exception ex) {
                            throw new Exception (ex.ToString ());
                        }

                    });
                    lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.TIMING, String.Format ("DESERIALIZEALL for {0}  took {1}", this.ToString (), time));

                    if (null != ListAsDataObjectsOfType) {
                        dataForThisLayout = new List<NoteDataInterface> ();
                        time = CoreUtilities.TimerCore.Time (() => {
                            // need to add LinkTable back (since we have rebuilt the array!!)
                            // We want the LinkTable BEFORE the other notes are CreateParent'ed
                                if (false == IsSubPanel && null != LayoutPanelToLoadNoteOnto) {
                                if (MyLinkTableNote == null)
                                    NewMessage.Show ("LinkTableNote is null?? Is Layout Visible?");
                                dataForThisLayout.Add (MyLinkTableNote);
                                // always minimize the linktable note
                                //MyLinkTableNote.Minimize(true);
                                MyLinkTableNote.Visible = false;
                            }

                            for (int i = 0; i < ListAsDataObjectsOfType.Count; i++) {

                                dataForThisLayout.Add (ListAsDataObjectsOfType [i]);
                                if (null != LayoutPanelToLoadNoteOnto) {
                                    ListAsDataObjectsOfType [i].CreateParent (LayoutPanelToLoadNoteOnto);
                                }
                            }

                            Success = true;
                            debug_ObjectCount = ListAsDataObjectsOfType.Count;
                        });
                        lg.Instance.Line ("LayoutDatabase->LoadFrom", ProblemType.TIMING, String.Format ("COPYARRAYS for {0}  took {1}", this.LayoutGUID, time));
                    }
                }
                }
            } else {
                throw new Exception("Critical Error. Nothing was found to load on: " + this.ToString());
            }

            //long workingSet = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
            //lg.Instance.Line("LoadFrom", ProblemType.TEMPORARY, workingSet.ToString());
            // we loaded this, so we increase the hits
            Hits++;
            return Success;
        }
コード例 #12
0
        /// <summary>
        /// Creates the link table if necessary.
        /// Also handles all the hooking up events (i.e., Load will never need to create the table BUT does need the hookups)
        /// Called from Load and when a New Layout is created (LayoutPanel calls this)
        /// </summary>
        /// <param name='table'>
        /// Table.
        /// </param>
        public void CreateLinkTableIfNecessary(NoteDataXML_Table table, LayoutPanelBase LayoutPanelToLoadNoteOnto)
        {
            MyLinkTable = new LinkTable ();
            bool creatednew = false;
            // either no note was in data or it came out wrong, we build a new LinkTable
            if (table.GuidForNote != LinkTable.STICKY_TABLE) {

                lg.Instance.Line ("LayoutDatabase->CreateLinkTableIfNecessary", ProblemType.MESSAGE, String.Format ("Creating link table on '{0} Subpanel='{1}' ParenGUID='{2}', My GUID='{3}' Table GUID = '{4}'", this.Name, this.IsSubPanel,
                                                LayoutPanelToLoadNoteOnto.ParentGUID, this.LayoutGUID, table.GuidForNote));
            //	NewMessage.Show (String.Format ("Creating link table on '{0} Subpanel='{1}' ParenGUID='{2}', My GUID='{3}' Table GUID = '{4}'", this.Name, this.IsSubPanel,
            //	                                LayoutPanelToLoadNoteOnto.ParentGUID, this.LayoutGUID, table.GuidForNote));
                table = new NoteDataXML_Table ();
                table.ReadOnly = true;
                table.Caption = LinkTable.STICKY_TABLE;
                table.GuidForNote = LinkTable.STICKY_TABLE;
                table.dataSource = MyLinkTable.BuildNewTable ().Copy ();
                ((System.Data.DataTable)table.dataSource).TableName = CoreUtilities.Tables.TableWrapper.TablePageTableName;
            ///	table.Minimize();
                // Note Table must AddToStart so that it is instantiated Before any other notes

                // if we have to create a table we Assume that we can do a Convert too
                //newTableNeeded = true;

                //SaveTo ();
                creatednew = true;
            }

            AddToStart (table);

            if (null == LayoutPanelToLoadNoteOnto) {
                NewMessage.Show ("LayoutPanel was null 456 LayoutDatabase");
            }
            table.CreateParent(LayoutPanelToLoadNoteOnto);

            MyLinkTable.SetTable (table.dataSource);

            MyLinkTableNote = table;
            if (null == MyLinkTableNote) NewMessage.Show ("CreateLinkTable LinkTable Note is null");

            if (true == creatednew)
                table.Minimize();
        }
コード例 #13
0
        //delegate_UpdateListOfNotes UpdateListOfNotes;
        public void CreateParent(LayoutPanelBase _Layout)
        {
            ParentNotePanel = new NotePanel (this);
            //ParentNotePanel.Visible = false;
            //	ParentNotePanel.SuspendLayout ();

            ParentNotePanel.Visible = true;
            ParentNotePanel.Location = Location;
            ParentNotePanel.Dock = System.Windows.Forms.DockStyle.None;
            ParentNotePanel.Height = Height;
            ParentNotePanel.Width = Width;
            ParentNotePanel.Dock = this.Dock;

            try {
                _Layout.NoteCanvas.Controls.Add (ParentNotePanel);
            } catch (Exception ex) {
                lg.Instance.Line ("CreateParent", ProblemType.EXCEPTION, "Unable to create note after changing properties" + ex.ToString ());
                throw new Exception ("Failed to add control");
            }

            CaptionLabel = new ToolStrip ();
            // must be false for height to matter
            CaptionLabel.AutoSize = false;
            //		CaptionLabel.SuspendLayout ();
            CaptionLabel.Click += (object sender, EventArgs e) => BringToFrontAndShow ();
            //	CaptionLabel.DoubleClick += HandleCaptionLabelDoubleClick;
            CaptionLabel.MouseDown += HandleMouseDown;
            CaptionLabel.MouseUp += HandleMouseUp;
            CaptionLabel.MouseLeave += HandleMouseLeave;
            CaptionLabel.MouseMove += HandleMouseMove;
            CaptionLabel.Parent = ParentNotePanel;
            CaptionLabel.BackColor = Color.Green;
            CaptionLabel.Dock = DockStyle.Fill;
            CaptionLabel.GripStyle = ToolStripGripStyle.Hidden;

            captionLabel = new ToolStripLabel (this.Caption);
            captionLabel.ToolTipText = Loc.Instance.GetString ("TIP: Doubleclick this to set the note to its regular size");

            captionLabel.MouseDown += HandleMouseDown;
            captionLabel.MouseUp += HandleMouseUp;
            //captionLabel.MouseLeave += HandleMouseLeave;
            captionLabel.MouseMove += HandleMouseMove;
            captionLabel.DoubleClickEnabled = true;
            captionLabel.DoubleClick+= HandleCaptionLabelDoubleClick;

            CaptionLabel.Items.Add (captionLabel);
            //if (Caption == "")				NewMessage.Show ("Caption is blank");

            properties = new ToolStripDropDownButton ("");
            properties.Image = CoreUtilities.FileUtils.GetImage_ForDLL ("application_form_edit.png");
            CaptionLabel.Items.Add (properties);

            MinimizeButton = new ToolStripButton ();
            //MinimizeButton.Text = "--";

            MinimizeButton.Image = CoreUtilities.FileUtils.GetImage_ForDLL ("application_put.png");
            MinimizeButton.ToolTipText = "Hides the note. Bring it back by using the List or a Tab";
            MinimizeButton.Click += HandleMinimizeButtonClick;

            MaximizeButton = new ToolStripButton ();
            //MaximizeButton.Text = "[  ]";
            MaximizeButton.Image = CoreUtilities.FileUtils.GetImage_ForDLL ("application_xp.png");
            MaximizeButton.ToolTipText = Loc.Instance.GetString ("Fills available screen");
            MaximizeButton.Click += HandleMaximizeButtonClick;

            if (true == IsSystemNote) {
                // not really a delete, more of a close
                ToolStripButton closeButton = new ToolStripButton ();
                //closeButton.Text = " X ";
                closeButton.Image = CoreUtilities.FileUtils.GetImage_ForDLL ("delete_x.png");
                closeButton.Click += HandleCloseClick;
                ;
                CaptionLabel.Items.Add (closeButton);
                //closeButton.Anchor = AnchorStyles.Right;
                closeButton.Alignment = ToolStripItemAlignment.Right;
                //	ToolStripItem item = new ToolStripItem();
                //item.ToolStripItemAlignment = ToolStripItemAlignment.Right;
                //closeButton.Dock = DockStyle.Right;
            }

            if (false == IsSystemNote) {
                ToolStripTextBox captionEditor = new ToolStripTextBox ();
                captionEditor.Text = Caption;
                captionEditor.TextChanged += HandleCaptionTextChanged;
                captionEditor.KeyDown += HandleCaptionEditorKeyDown;
                properties.DropDownItems.Add (captionEditor);

            }

            CaptionLabel.Items.Add (MaximizeButton);
            MaximizeButton.Alignment = ToolStripItemAlignment.Right;
            CaptionLabel.Items.Add (MinimizeButton);
            MinimizeButton.Alignment = ToolStripItemAlignment.Right;

            //contextMenu = new ContextMenuStrip();

            ToolStripButton BringToFront = new ToolStripButton ();
            BringToFront.Text = Loc.Instance.Cat.GetString ("Bring to Front");
            BringToFront.Click += HandleBringToFrontClick;
            properties.DropDownItems.Add (BringToFront);

            properties.DropDownItems.Add (new ToolStripSeparator ());

            if (false == IsSystemNote) {
                ReadOnlyButton = new ToolStripButton ();
                ReadOnlyButton.CheckOnClick = true;
                ReadOnlyButton.Checked = this.ReadOnly;
                ReadOnlyButton.Text = Loc.Instance.Cat.GetString ("Read Only");
                ReadOnlyButton.Click += HandleReadOnlyClick;
                properties.DropDownItems.Add (ReadOnlyButton);
            }

            //
            //
            // APPEARANCE
            //
            //
            AppearanceSet = new ToolStripMenuItem ();

            ContextMenuStrip AppearanceMenu = new ContextMenuStrip ();

            ToolStripLabel empty = new ToolStripLabel ("BB");
            AppearanceMenu.Items.Add (empty);

            AppearanceSet.DropDown = AppearanceMenu;
            AppearanceMenu.Opening += HandleAppearanceMenuOpening;
            properties.DropDownItems.Add (AppearanceSet);
            //
            //
            // DOCK STYLE
            //
            //

            ToolStripComboBox DockPicker = new ToolStripComboBox ();
            DockPicker.ToolTipText = Loc.Instance.GetString ("Set Docking Behavior For Note");
            DockPicker.DropDownStyle = ComboBoxStyle.DropDownList;
            //DockPicker.DropDown+= HandleDockDropDown;

            (DockPicker).Items.Clear ();
            int found = -1;
            int count = -1;

            // this loop does not affect performance
            foreach (string s in Enum.GetNames(typeof(DockStyle))) {
                count++;
                (DockPicker).Items.Add (s);
                if (s == this.Dock.ToString ()) {
                    found = count;
                }
            }
            if (found > -1)
                DockPicker.SelectedIndex = found;
            DockPicker.SelectedIndexChanged += HandleDockStyleSelectedIndexChanged;
            properties.DropDownItems.Add (DockPicker);

            //
            //
            // LOCK
            //
            //
            ToolStripButton LockState = new ToolStripButton ();
            LockState.Text = Loc.Instance.GetString ("Lock");
            LockState.Checked = this.LockState;
            LockState.CheckOnClick = true;
            LockState.Click += HandleLockStateClick;
            properties.DropDownItems.Add (LockState);

            //
            //
            // FOLDER
            //
            //
            if (false == IsSystemNote) {
                ToolStripMenuItem menuFolder = new ToolStripMenuItem ();
                menuFolder.Text = Loc.Instance.Cat.GetString ("Folder");
                properties.DropDownItems.Add (menuFolder);
                // just here to make sure that there's a dropdown singal before populating
                menuFolder.DropDownItems.Add ("");
                menuFolder.DropDownOpening += HandleFolderDropDownOpening;
                //	menuFolder.MouseEnter += HandleMenuFolderMouseEnter;
            }

            if (false == IsSystemNote) {
                ToolStripButton deleteNote = new ToolStripButton ();
                deleteNote.Text = Loc.Instance.GetString ("Delete This Note");
                properties.DropDownItems.Add (deleteNote);
                deleteNote.Click += HandleDeleteNoteClick;
            } else
                if (true == IsSystemNote) {
                // add a way to DELETE a Layout?
                ToolStripButton deleteNote = new ToolStripButton ();
                deleteNote.Text = Loc.Instance.GetString ("Delete This Layout");
                properties.DropDownItems.Add (deleteNote);
                deleteNote.Click += HandleDeleteLayoutClick;

            }

            if (true == IsLinkable) {
                ToolStripButton linkNote = new ToolStripButton ();
                linkNote.Text = Loc.Instance.GetString ("Create a Link To This Note");
                properties.DropDownItems.Add (linkNote);
                linkNote.Click += HandleLinkNoteClick;

            }

            ToolStripButton copyNote = new ToolStripButton ();
            copyNote.Text = Loc.Instance.GetString ("Copy Note");
            properties.DropDownItems.Add (copyNote);
            copyNote.Click += (object sender, EventArgs e) => Layout.CopyNote (this);

            properties.DropDownItems.Add (new ToolStripSeparator ());

            ToolStripButton menuProperties = new ToolStripButton ();
            menuProperties.Text = Loc.Instance.Cat.GetString ("Properties");
            properties.DropDownItems.Add (menuProperties);
            menuProperties.Click += HandlePropertiesClick;

            // 04/11/2014
            // TODO REMOVE
            // If I ever build a cleaner system for setting up notedocks this can be removed
            // but for now we display the GUID as a clickable button
            // that puts in on the clipboard
            ToolStripButton menuGUIDButton = new ToolStripButton();
            menuGUIDButton.Text = this.GuidForNote;
            menuGUIDButton.Click+= (object sender, EventArgs e) => {
                Clipboard.SetText(this.GuidForNote);
            };
            properties.DropDownItems.Add (menuGUIDButton);

            PropertyPanel = new Panel ();
            PropertyPanel.Visible = false;
            PropertyPanel.Parent = ParentNotePanel;
            PropertyPanel.Height = 300;
            PropertyPanel.Dock = DockStyle.Top;
            PropertyPanel.AutoScroll = true;

            Button CommitChanges = new Button ();
            CommitChanges.Text = Loc.Instance.Cat.GetString ("Update Note");
            CommitChanges.Parent = PropertyPanel;
            CommitChanges.Dock = DockStyle.Bottom;
            CommitChanges.Click += HandleCommitChangesClick;
            CommitChanges.BringToFront ();

            ParentNotePanel.Visible = this.Visible;
            //			CaptionLabel.ResumeLayout(); this did not seem to help
            //			ParentNotePanel.ResumeLayout();

            // Set up delegates

            GetAvailableFolders = _Layout.GetAvailableFolders;
            MoveNote = _Layout.MoveNote;
            SetSaveRequired = _Layout.SetSaveRequired;
            DeleteNote = _Layout.DeleteNote;
            Layout = _Layout;

            ToolStripMenuItem TokenItem =
                LayoutDetails.BuildMenuPropertyEdit (Loc.Instance.GetString("Note Dock String: {0}"),
                                                     this.Notedocks,
                                                     Loc.Instance.GetString ("example: note1*44159e01-b2c6-4b1f-9b68-8d3c85755f14*[[chapter1]]."),
                                                     HandleTokenChange,25 );

            properties.DropDownItems.Add (TokenItem);
            BuildNoteDocks();

            // February 17 2013 - needed to ensure that children build their controls before Updateappearance is called
            DoBuildChildren(_Layout);

            UpdateAppearance ();
        }
コード例 #14
0
        /// <summary>
        /// Function_s the even windows_ across monitors.
        ///
        /// First code will be on the 1st monitor, the seocond on the next
        /// Third and further elements ignored.
        /// </summary>
        /// <param name='secondarycode'>
        /// Secondarycode.
        /// </param>
        /// <param name='alpha'>
        /// If set to <c>true</c> alpha.
        /// </param>
        void Function_EvenWindows_AcrossMonitors(string secondarycode, bool alpha)
        {
            if (secondarycode != Constants.BLANK)
            {
                string[] windows = GetNotesToOperateOn(secondarycode);


                if (windows.Length != 4)
                {
                    NewMessage.Show("The secondary string must be in the format of monitor1offset,monitor2offset,window1ToOpen,Window2ToOpen");
                    return;
                }
                int overrideLeftMonitor1 = 0;
                if (Int32.TryParse(windows [0], out overrideLeftMonitor1) == false)
                {
                    NewMessage.Show(Loc.Instance.GetString("Parse failed 1"));
                }

                //NewMessage.Show (overrideLeftMonitor1.ToString ());

                int overrideLeftMonitor2 = 0;
                if (Int32.TryParse(windows [1], out overrideLeftMonitor2) == false)
                {
                    NewMessage.Show(Loc.Instance.GetString("Parse failed 2"));
                }
                //NewMessage.Show (overrideLeftMonitor2.ToString ());

                if (windows != null)
                {
                    // we need to start the counter low because we pass 4 entries in but skip the first two
                    int             counter  = -2;
                    LayoutPanelBase MyLayout = Layout;
                    GetMasterLayoutToUse(ref MyLayout);

                    System.Windows.Forms.Screen[] currentScreen = System.Windows.Forms.Screen.AllScreens;
//					int Width = MyLayout.Width;
//					int Height = MyLayout.Height - MyLayout.HeightOfToolbars ();
                    foreach (string notename in windows)
                    {
                        if (notename != Constants.BLANK)
                        {
                            counter++;
                            if (counter > 0)
                            {
                                NoteDataInterface note = MyLayout.FindNoteByName(notename);
                                if (note != null)
                                {
                                    note = MyLayout.GoToNote(note);
                                    if (note != null)
                                    {
                                        int NewWidth    = 0;
                                        int NewHeight   = 0;
                                        int newLeft     = 0;
                                        int NewTop      = 0;
                                        int WindowToUse = 0;
                                        // if we have only one monitor then we use it for both notes (which doesn't make sense but is all we can do0
                                        if (counter == 1 || currentScreen.Length == 1)
                                        {
                                            //	NewMessage.Show ("set to " + overrideLeftMonitor1);
                                            newLeft = overrideLeftMonitor1;
                                        }
                                        else
                                        {
                                            newLeft = overrideLeftMonitor2;
                                            // 2nd or other, will always try to refer to '2nd' screen
                                            WindowToUse = 1;
                                        }
//									string message = String.Format ("Device Name: {0}\nBounds: {1}\nType: {2}\nWorking Area: {3}",
//									                                currentScreen[WindowToUse].DeviceName, currentScreen[WindowToUse].Bounds.ToString (),
//									                                currentScreen[WindowToUse].GetType().ToString (),currentScreen[WindowToUse].WorkingArea.ToString ());
//											NewMessage.Show(message);

                                        int buffer = 40;                                        //currentScreen[WindowToUse].
                                        //NewMessage.Show (newLeft.ToString ());
                                        if (0 == newLeft)
                                        {
                                            newLeft = currentScreen [WindowToUse].WorkingArea.Left;                                  //+buffer;
                                        }
                                        NewTop    = currentScreen [WindowToUse].WorkingArea.Top;                                     //+buffer;
                                        NewWidth  = currentScreen [WindowToUse].WorkingArea.Width - buffer;
                                        NewHeight = currentScreen [WindowToUse].WorkingArea.Height - (buffer * 2);



                                        note.Width  = NewWidth;
                                        note.Height = NewHeight;


                                        if (note is NoteDataXML_SystemOnly)
                                        {
                                            //NewMessage.Show ("System Note");
                                            note.Maximize(true);
                                            note.Maximize(false);
                                        }
                                        note.Location = new Point(newLeft, NewTop);
                                        note.UpdateLocation();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #15
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);
            CaptionLabel.Dock = DockStyle.Top;

            if (TableCreated == false) {
                Width = 500;
                Height = 200;
                ParentNotePanel.Width = Width;
                ParentNotePanel.Height = Height;

                TimelineStartDate = DateTime.Today;

                // A. Create the Table
                NoteDataXML_Table myTable = new NoteDataXML_Table (100, 100, new ColumnDetails[7]{
                    new ColumnDetails ("Date", 50),
                    new ColumnDetails ("Type", 50),
                    new ColumnDetails ("Data", 50),
                    new ColumnDetails ("Data2", 50),
                    new ColumnDetails ("Data3", 50),
                    new ColumnDetails ("Data4", 50),
                    new ColumnDetails ("icon", 50)});
                string GuidOfTable = this.GuidForNote + "table";
                myTable.GuidForNote = GuidOfTable;

                myTable.Caption = Loc.Instance.GetStringFmt ("Table for Timeline");

                Layout.AddNote (myTable);

                // we do not need to call CreateParent because AddNote does it for us
                //myTable.CreateParent (Layout);
                Save ();
                myTable.AddRow (new object[7]{DateTime.Today.ToString (), "100", "Example Description", "Example Title", "", "", 2});
                TableCreated = true;
                Save ();
                // B. Populate it with example Row
            }
            Timeline = new NotePanelTimeline (this);
            Timeline.Dock = DockStyle.Fill;
            ParentNotePanel.Controls.Add (Timeline);
            Timeline.dayPanelWidth = DayPanelWidth;
            Timeline.BringToFront ();

            RowFilterStrip =
                LayoutDetails.BuildMenuPropertyEdit (Loc.Instance.GetString ("Row Filter: {0}"), RowFilter, Loc.Instance.GetString ("Filter via the columns on the table associated with this timeline."), HandleRowFilterChange);

            ToolStripSeparator sep = new ToolStripSeparator ();

            ToolStripComboBox dropper = new ToolStripComboBox ();

            dropper.ToolTipText = Loc.Instance.GetString ("Set the type of timeline you want by selecting an appropriate calendar.");
            dropper.DropDownStyle = ComboBoxStyle.DropDownList;
            foreach (Calendar.calendertype calendertype in Enum.GetValues (typeof(Calendar.calendertype))) {
                dropper.Items.Add (calendertype.ToString ());
            }
            dropper.Text = MCalendarType.ToString ();
            dropper.SelectedIndexChanged += HandleSelectedIndexCalendarPickerChanged;

            // Icons Per Column. We had the edit to a ToolStrip Host and add the Host to the toolstrip
            NumericUpDown numbers = new NumericUpDown ();

            Panel numbersPanel = new Panel ();
            numbersPanel.BackColor = dropper.BackColor;
            Label numbersLabel = new Label ();
            numbersLabel.Left = 0;
            //numbersLabel.Dock = DockStyle.Left;
            numbersLabel.Text = Loc.Instance.GetString ("Icons/Column: ");
            numbersLabel.AutoSize = false;
            numbersLabel.Width = 85;
            numbers.Left = 90;
            numbers.Width = 45;
            //numbersLabel.AutoSize = true;
            //numbers.Dock = DockStyle.Right;

            numbersPanel.Controls.Add (numbersLabel);
            numbersPanel.Controls.Add (numbers);
            numbersLabel.BringToFront ();
            //numbersPanel.Dock = DockStyle.Fill;

            numbers.Value = IconsPerColumn;
            numbers.ValueChanged += HandleIconsPerColumnValueChanged;
            numbers.Minimum = 1;
            numbers.Maximum = 20;
            ToolStripControlHost iconsPerColumn = new ToolStripControlHost (numbersPanel);

            // Day Width
            ToolStripControlHost setDayWidth = BuildDayWidth(dropper.BackColor);

            DateTimePicker dates = new DateTimePicker ();
            dates.Width = 125;
            try {
                dates.Value = this.TimelineStartDate;
            } catch (Exception) {
                dates.Value = DateTime.Today;
            }
            dates.ValueChanged += HandleValueCurrentdateChanged;
            ToolStripControlHost dateToolStrip = new ToolStripControlHost (dates);
            dateToolStrip.ToolTipText = Loc.Instance.GetString ("Select a date to center the timeline on that date.");

            properties.DropDownItems.Add (sep);
            properties.DropDownItems.Add (dropper);
            properties.DropDownItems.Add (iconsPerColumn);
            properties.DropDownItems.Add (setDayWidth);
            properties.DropDownItems.Add (RowFilterStrip);
            properties.DropDownItems.Add (dateToolStrip);

            // add hjistory to RowFilterStrip
            foreach (string history in RowHistory) {
                ToolStripMenuItem test = new ToolStripMenuItem (history);
                test.Click += delegate(object sender, EventArgs e){  RowFilter = RowFilterStrip.Text = test.Text; Timeline.Refresh();};
                RowFilterStrip.DropDownItems.Add (test);
            }

            //
            //
            // Hide ZOom Panel
            //
            //
            ToolStripButton HideMonths = new ToolStripButton();
            HideMonths.Text = Loc.Instance.GetString("Hide Months Panel");
            HideMonths.CheckOnClick = true;
            HideMonths.Checked = this.HideZoomOutPanel;
            HideMonths.Click+= HandleHideMonthsClick;

            properties.DropDownItems.Add (HideMonths);
            // Adjust panel as needed; also add this to the menu too
            Timeline.HideZoomPanel(this.HideZoomOutPanel);
        }
コード例 #16
0
        /// <summary>
        /// Gets the list of guids of busy markets.
        /// 
        /// Returns the guids for those markets with submissions at them. This is used to exclude them from the marketlist filter
        /// </summary>
        /// <returns>
        /// The list of guids of busy markets.
        /// </returns>
        public static List<string> GetListOfGuidsOfBusyMarkets(LayoutPanelBase CurrentLayout)
        {
            List<string> BusyMarkets = new List<string> ();
            List<string> result = CurrentLayout.GetListOfStringsFromSystemTable (TABLE_ReplyTypes, 1, String.Format ("2|{0}", CODE_NO_REPLY_YET), false);
            if (result != null && result.Count > 0) {
                List<TransactionBase> allsubs = LayoutDetails.Instance.TransactionsList.GetEventsForLayoutGuid
                    ("*", String.Format (" and data7='{0}' and {1}='{2}'", result[0], TransactionsTable.TYPE,  TransactionSubmission.T_SUBMISSION));

                // this should give us a list of EVERY submission that has not received a VALID REPLY.
                // HENCE> Every market on this list would be BUSY

                foreach (TransactionBase sub in allsubs) {
                //	if (sub is TransactionSubmission)
                    {
                //		NewMessage.Show ("Adding " + sub.Display);
                    BusyMarkets.Add (((TransactionSubmission)sub).MarketGuid);
                    }
            //					else
            //					{
            //						NewMessage.Show ("Not adding " + sub.Display);
            //					}
                }
            }
            return BusyMarkets;
        }
コード例 #17
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            // Unable to BUILD A SYSTEM TABLE here. It is a copy, not a link to the actual table
            // and hence does not work.
            // Instead I will try under Register; see my logic for why, there
            // We create the table when registering type.
            // The LOGIC I am using is that this will be called when the user
            // clicks the FIRST TIME to register the type. Meaning the table is created.

            // WHERE IT FAILS: If the user deletes the table manually, it will never attempt to recreate it, unless
            // Addin deregistered and reregisetered
            string TableName = SYSTEM_WORKLOGCATEGORY;
            LayoutPanels.NoteDataXML_Panel PanelContainingTables = LayoutPanel.GetPanelToAddTableTo (TableName);
            BringToFrontAndShow ();
            // can't use TableLayout because its not the actual tablelayout (its a copy)
            if (PanelContainingTables != null) {

                // create the note
                NoteDataXML_Table randomTables = new NoteDataXML_Table (100, 100, new ColumnDetails[2]{new ColumnDetails ("id", 100),
                        new ColumnDetails ("category", 100)});
                randomTables.Caption = TableName;

                PanelContainingTables.AddNote (randomTables);
                randomTables.CreateParent (PanelContainingTables.GetPanelsLayout ());

                randomTables.AddRow (new object[2]{"1", Loc.Instance.GetString ("Writing")});
                randomTables.AddRow (new object[2]{"2", Loc.Instance.GetString ("Editing")});
                randomTables.AddRow (new object[2]{"3", Loc.Instance.GetString ("Planning")});
                //		LayoutDetails.Instance.TableLayout.SaveLayout();
                PanelContainingTables.GetPanelsLayout ().SaveLayout ();
                //NewMessage.Show("Making new");
                // now we reload the system version
                LayoutDetails.Instance.TableLayout.LoadLayout (LayoutDetails.TABLEGUID, true, null);
                BringToFrontAndShow ();
            }

            base.DoBuildChildren (Layout);
            properties.DropDownItems.Add (new ToolStripSeparator ());
            CaptionLabel.Dock = DockStyle.Top;

             Journal = new JournalPanel(this.Layout.GUID, BringFrontWrapper);
            Journal.Dock = DockStyle.Fill;
            //Journal.Click+= (object sender, EventArgs e) => BringToFrontAndShow();

            ParentNotePanel.Controls.Add (Journal);

            Journal.BringToFront();
            Journal.RefreshPanels("");
        }
コード例 #18
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);
            CaptionLabel.Dock = DockStyle.Top;

            mode = new ComboBox ();
            mode.Parent = ParentNotePanel;
            mode.DropDownStyle = ComboBoxStyle.DropDownList;
            mode.Dock = DockStyle.Top;
            mode.BringToFront ();

            mode.Items.Add (Loc.Instance.GetString ("Notes on This Layout"));
            mode.Items.Add (Loc.Instance.GetString ("All Layouts"));
            mode.Items.Add (Loc.Instance.GetString ("Notes on Current Layout"));

            mode.SelectedIndexChanged += HandleDropDownSelectedIndexChanged;

            SearchDetails = new Panel ();

            AdjustDockingOfSearchPanel();

            CurrentFilterDropDown = new ComboBox ();
            CurrentFilterDropDown.Dock = DockStyle.Bottom;

            // because we need the tables to be loaded we CANNOT load this data now
            LayoutDetails.Instance.UpdateAfterLoadList.Add (this);

            TextEditor = new ComboBox ();
            TextEditor.Dock = DockStyle.Bottom;
            TextEditor.KeyPress += HandleTextEditKeyPress;
            TextEditor.KeyUp += HandleKeyUp;

            // Do some cleanup on history item to keep the list reasonable.
            // This happens only on load to keep things simple
            if (History.Count > 10) {
                History.RemoveRange(9, (History.Count)-9);
            }

            foreach (string s in History) {
                TextEditor.Items.Add (s);
            }

            TextEditor.SelectedIndexChanged+= (object sender, EventArgs e) => 	Refresh ();;

            FullTextSearch = new CheckBox();
            FullTextSearch.Checked = false;
            FullTextSearch.Text = Loc.Instance.GetString ("Search All Text Fields");
            FullTextSearch.Dock = DockStyle.Bottom;

            SearchDetails.Controls.Add (TextEditor);
            SearchDetails.Controls.Add (CurrentFilterDropDown);
            SearchDetails.Controls.Add (FullTextSearch);

            list = new ListBox();
            //list.SelectedIndexChanged += HandleDropDownSelectedIndexChanged;
            list.Parent = ParentNotePanel;
            list.Width = 125;
            list.Dock = DockStyle.Fill;
            list.BringToFront();
            list.BindingContextChanged+= HandleBindingContextChanged;
            list.DoubleClick += HandleListBoxDoubleClick;
            list.Click+= HandleNoteListClick;

            ParentNotePanel.Controls.Add (SearchDetails);

            count = new Label();
            count.Parent = ParentNotePanel;
            count.Dock = DockStyle.Bottom;

            blurb = new Label();
            blurb.Parent = ParentNotePanel;
            blurb.Dock = DockStyle.Bottom;

            refresh = new Button();
            refresh.Text = Loc.Instance.GetString("Refresh");
            refresh.Dock = DockStyle.Bottom;
            refresh.Parent = ParentNotePanel;
            refresh.Click += HandleRefreshClick;

            //Menu Stuff

             TokenItem = new ToolStripMenuItem(Loc.Instance.GetString("Dock on Bottom?"));
            TokenItem.CheckOnClick = true;
            TokenItem.Click += (object sender, EventArgs e) => {
                searchDetailsDock = (sender as ToolStripMenuItem).Checked;
                AdjustDockingOfSearchPanel();
                this.SetSaveRequired(true);
            };
            if (searchDetailsDock) TokenItem.Checked = true; else TokenItem.Checked= false;

            properties.DropDownItems.Add (new ToolStripSeparator());
            properties.DropDownItems.Add (TokenItem);

            //	AdjustHeightOfLayoutSearchPanel (); This already gets called when the note type is chosen
        }
コード例 #19
0
 static void GetMasterLayoutToUse(ref LayoutPanelBase MyLayout)
 {
     if (MyLayout.GetIsChild == true) {
         LayoutPanelBase MyPossibleLayout = MyLayout.GetAbsoluteParent ();
         if (MyPossibleLayout != null) {
             if (MyPossibleLayout.GetIsSystemLayout == true) {
                 // we only override if we have found the system layout? Will this fix
                 // the issue of not finding correct width of immediate parent?
                 // IF NOT: only revert to Absolute Layout if a note is not found
                 MyLayout = MyPossibleLayout;
             }
         }
     }
 }
コード例 #20
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);
            try {
                BottomInfo = new Panel();
                BottomInfo.Dock = DockStyle.Bottom;
                BottomInfo.Height = 75;

                ParentNotePanel.Controls.Add (BottomInfo);

                ToolStripMenuItem SelectItem = new ToolStripMenuItem();
                SelectItem.Text = Loc.Instance.GetString ("Select File");
                SelectItem.Click+= HandleSelectFile;

                ToolStripMenuItem RefreshItem = new ToolStripMenuItem();
                RefreshItem.Text = Loc.Instance.GetString ("Get From File");
                RefreshItem.Click+= HandleRefreshClick;

                ToolStripMenuItem SendTo = new ToolStripMenuItem();
                SendTo.Text = Loc.Instance.GetString ("Send To File");
                SendTo.Click += HandleSendToClick;

                LastUpdateDate = new Label();
                LastUpdateDate.Text = ImportTime();//lastRefresh.ToString ();
                LastUpdateDate.Dock = DockStyle.Top;
                LastUpdateDate.Click+= (object sender, EventArgs e) => HandleRefresh();

                LastExportDate = new Label();
                LastExportDate.Text = ExportTime ();
                LastExportDate.Dock = DockStyle.Top;
                LastExportDate.Click+= (object sender, EventArgs e) =>  this.SendTo();

                FileShown = new Label();
                FileShown.Click+= HandleFileShownClick;
                //FileShown.Text = LinkedFile;
                FileShown.Dock = DockStyle.Top;

                // not actually changing the name but updated the label with a shortened version of it
                ChangeName(LinkedFile);

                BottomInfo.Controls.Add (LastUpdateDate);
                BottomInfo.Controls.Add (LastExportDate);
                BottomInfo.Controls.Add (FileShown);

                properties.DropDownItems.Add (new ToolStripSeparator());
                properties.DropDownItems.Add (SelectItem);
                properties.DropDownItems.Add(RefreshItem);
                properties.DropDownItems.Add(SendTo);
            } catch (Exception ex) {
                NewMessage.Show (ex.ToString ());
            }
        }
コード例 #21
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);
            CaptionLabel.Dock = DockStyle.Top;
            richBox = new RichTextExtended ();
            richBox.ContextMenuStrip = Layout.GetLayoutTextEditContextStrip ();
            richBox.Enter += HandleRichBoxEnter;
            richBox.Parent = ParentNotePanel;
            richBox.Dock = DockStyle.Fill;
            richBox.BringToFront ();
            richBox.Rtf = this.Data1;
            richBox.SelectionChanged += HandleRichTextSelectionChanged;
            richBox.TextChanged += HandleTextChanged;
            richBox.ReadOnly = this.ReadOnly;
            richBox.HideSelection = false; // must be able to see focus form other controls
            captionLabel.MouseDown += HandleMouseDownOnCaptionLabel;
            //CaptionLabel.MouseHover += HandleCaptionMouseHover;
            MarkupCombo = new ToolStripComboBox ();
            MarkupCombo.ToolTipText = Loc.Instance.GetString ("AddIns allow text notes to format text. A global option controls the default markup to use on notes but this may be overridden here.");
            //	LayoutDetails.Instance.BuildMarkupComboBox (MarkupCombo);

            BuildDropDownList ();

            properties.DropDownItems.Add (new ToolStripSeparator());

            ToolStripButton fullScreen = new ToolStripButton();
            fullScreen.Text = Loc.GetStr("Fullscreen");
            fullScreen.Click+= HandleFullScreenClick;
            properties.DropDown.Items.Add (fullScreen);

            properties.DropDownItems.Add (MarkupCombo);
            MarkupCombo.SelectedIndexChanged += HandleSelectedIndexChanged;
            MarkupCombo.DropDownStyle = ComboBoxStyle.DropDownList;
            MarkupCombo.DropDown += HandleDropDown;
            loadingcombo = true;
            // just show default if we have not overridden this
            if (Markuplanguage == defaultmarkup) {
                MarkupCombo.Text = defaultmarkup;
            } else
            if (SelectedMarkup != null) {
                for (int i = 0; i < MarkupCombo.Items.Count; i++) {
                    if (MarkupCombo.Items [i].GetType () == SelectedMarkup.GetType ()) {
                        MarkupCombo.SelectedIndex = i;
                        break;
                    }
                }
                richBox.MarkupOverride = (iMarkupLanguage)MarkupCombo.SelectedItem;
            }

            extraItemsToShow = new ToolStripComboBox ();
            extraItemsToShow.Items.AddRange (Enum.GetNames (typeof(ExtraItemsToShow)));
            extraItemsToShow.DropDownStyle = ComboBoxStyle.DropDownList;
            properties.DropDownItems.Add (extraItemsToShow);

            extraItemsToShow.SelectedIndex = (int)extraItemsToShow_value;
            extraItemsToShow.ToolTipText = Loc.Instance.GetString ("Reselect this to refresh after editing text.");
            extraItemsToShow.SelectedIndexChanged += (object sender, EventArgs e) => {
                extraItemsToShow_value = (ExtraItemsToShow)extraItemsToShow.SelectedIndex;
                SetSaveRequired (true);
                UpdateExtraView ();
            };

            // we use markup tag to indicate whether the data on the markup combo has changed to avoid slowness in save
            MarkupCombo.Tag = false;
            loadingcombo = false;

            tabView = new TabNavigation (richBox);
            tabView.Visible = false;
            tabView.Parent = ParentNotePanel;
            tabView.Dock = DockStyle.Top;
            //tabView.SendToBack();
            tabView.BringToFront ();

            if (null == bookMarkView) {
                bookMarkView = new NoteNavigation (this);
            }
            bookMarkView.Visible = false;
            AddBookmarkView ();

            UpdateExtraView();
            richBox.BringToFront();
            //CaptionLabel.BringToFront();
        }
コード例 #22
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren(Layout);

            #region hideparent
//			if (this.SearchDetails != null) {
//				// hide some of the base controls
//				this.SearchDetails.Visible = false;
//			}
//			TokenItem.Visible = false;
//			count.Visible = false;
//			refresh.Visible = false;
//			blurb.Visible = false;
//			mode.Visible = false;
//			this.list.Dock = DockStyle.Top;
            #endregion



            /*LOGIC - keep interface simple as possible
             * Shwo name of Current Layout/Card -- this is CARD MATCH MODE
             * If a word is elected in Current Card show that TOO -- this is WORD MATCH MODE
             *
             * Both modes can be active at same time.
             * Pause effects both modes (i.e, when paused the LOOKUP WORD stops)
             * CONSIDER: Current word our cursor is under is always checked (not just selected); this might be too slow
             *
             * CARD MATCH MODE
             * - like my Idea River
             *
             * WORD MATCH MODE
             * - shows the LOOKUP word panel + with Englex Additions, for the current word.
             *
             *
             * I could create associations between NOTE TYPES and the data pulled.
             *
             * On a character card we might see the advice to HAVE DAMAGED CHARACTERS pulled from
             * Writing Prompts.
             *
             * Something like:
             * if (characternote) then list = character prompts prioarity 10,
             * notecardtype=characteradvice
             *
             */


//			dropdown for Mode (Filter or Card Name Match)
            //ParentNotePanel.Dock = DockStyle.Top;
            CaptionLabel.Dock = DockStyle.Top;


//			dropdown for Fitler to use
            CurrentFilterDropDown = new ComboBox();
            CurrentFilterDropDown.DropDownStyle = ComboBoxStyle.DropDownList;
            CurrentFilterDropDown.Dock          = DockStyle.Bottom;
            CurrentFilterDropDown.Enabled       = false;


            CurrentModeDropDown = new ComboBox();
            CurrentModeDropDown.DropDownStyle = ComboBoxStyle.DropDownList;
            CurrentModeDropDown.Dock          = DockStyle.Bottom;
            CurrentModeDropDown.Enabled       = true;

            CurrentModeDropDown.Items.Add(Loc.Instance.GetString("By Current Note"));        // 0
            CurrentModeDropDown.Items.Add(Loc.Instance.GetString("By Current Layout"));      // 1
            CurrentModeDropDown.Items.Add(Loc.Instance.GetString("By Filter"));              // 2
            CurrentModeDropDown.Items.Add(Loc.Instance.GetString("By Any Keyword"));         // 3
            CurrentModeDropDown.Items.Add(Loc.Instance.GetString("By All Keywords"));        // 4
            CurrentModeDropDown.Items.Add(Loc.Instance.GetString("Just Word Lookup"));       // 5
            CurrentModeDropDown.SelectedIndex = CurrentIndexForTypeofAdvisor;

            CurrentModeDropDown.SelectedIndexChanged += (object sender, EventArgs e) => {
                GenerateAppropriateList();
                if (CurrentModeDropDown.SelectedIndex == 2)
                {
                    CurrentFilterDropDown.Enabled = true;
                }
                else
                {
                    CurrentFilterDropDown.Enabled = false;
                }
                CurrentIndexForTypeofAdvisor = CurrentModeDropDown.SelectedIndex;
                SetSaveRequired(true);
            };


            // create our own cotnrols
            label1      = new Label();
            label1.Dock = DockStyle.Bottom;
            label1.Text = "";

            richText      = new RichTextBox();
            richText.Dock = DockStyle.Fill;
            //richText.Height = 400;
            richText.Text     = "Details of Note";
            richText.ReadOnly = true;

            playButton        = new Button();
            playButton.Dock   = DockStyle.Fill;          //DockStyle.Left;
            playButton.Click += (object sender, EventArgs e) => {
                //NewMessage.Show ("Is playing = " + IsPlaying);
                if (IsPlaying == false)
                {
                    ParentNotePanel.Cursor = Cursors.WaitCursor;
                    playButton.Text        = "||";
                    IsPlaying = true;
                    if (bw == null)
                    {
                        ResetBackgroundWorker();
                    }
                    if (bw.IsBusy == false)
                    {
                        bw.RunWorkerAsync();
                    }
                }
                else
                {
                    Pause();
                }
            };
            playButton.Text = Loc.Instance.GetString(">");

//			Button pauseButton = new Button();
//			pauseButton.Dock = DockStyle.Right;
//			pauseButton.Text = Loc.Instance.GetString ("||");
//			pauseButton.Click+= (object sender, EventArgs e) =>
//			{
//				Pause();
//			};

            Button nextButton = new Button();
            nextButton.Text   = Loc.Instance.GetString(">>");
            nextButton.Dock   = DockStyle.Right;
            nextButton.Click += (object sender, EventArgs e) => {
                ParentNotePanel.Cursor = Cursors.WaitCursor;
                SkipABeat = 0;
                // ** Select a Note from the List **
                SelectAndOpenRandomNote(true);
                ParentNotePanel.Cursor = Cursors.Default;
            };

            Button prevButton = new Button();
            prevButton.Text   = Loc.Instance.GetString("<<");
            prevButton.Dock   = DockStyle.Left;
            prevButton.Click += (object sender, EventArgs e) => {
                ParentNotePanel.Cursor = Cursors.WaitCursor;
                SkipABeat = 0;
                // ** Select a Note from the List **
                SelectAndOpenRandomNote(false);
                ParentNotePanel.Cursor = Cursors.Default;
            };


            Panel playControls = new Panel();
            playControls.Name   = "playcontrols";
            playControls.Height = 25;
            playControls.Dock   = DockStyle.Top;

            playControls.Controls.Add(prevButton);
            playControls.Controls.Add(playButton);
            //	playControls.Controls.Add (pauseButton);
            playControls.Controls.Add(nextButton);

            prevButton.SendToBack();

            Panel lowerPanel = new Panel();
            lowerPanel.Name = "lowerpanel";


            lowerPanel.Controls.Add(label1);
            lowerPanel.Controls.Add(playControls);
            lowerPanel.Controls.Add(richText);
            lowerPanel.Controls.Add(CurrentFilterDropDown);
            lowerPanel.Controls.Add(CurrentModeDropDown);
            playControls.BringToFront();
            richText.BringToFront();
            lowerPanel.Parent = ParentNotePanel;
            lowerPanel.Height = 400;
            lowerPanel.Dock   = DockStyle.Fill;
            //playControls.SendToBack();
            lowerPanel.BringToFront();
            //ParentNotePanel.Controls.Add (lowerPanel);

            //	richText.BringToFront();
            // because we need the tables to be loaded we CANNOT load this data now
            LayoutDetails.Instance.UpdateAfterLoadList.Add(this);


            // Add lookup form
            lookup        = new lookupControl();
            lookup.Height = 200;
            lookup.Parent = ParentNotePanel;
            lookup.Dock   = DockStyle.Bottom;
            //lookup.BringToFront();
        }
コード例 #23
0
 public NoteDataXML_SystemOnly GetAvailableSystemNote(LayoutPanelBase LayoutPanel)
 {
     // called from MainForm to request a docking place for a new layout to be loaded
     NoteDataXML_SystemOnly system = new NoteDataXML_SystemOnly(600, 600);
     Add (system);
     system.CreateParent(LayoutPanel);
     return system;
     //return (System.Windows.Forms.Control)system.Parent;
     /*
     foreach (NoteDataInterface note in Notes.GetNotes ()) {
         if (note.GetType() == typeof(NoteDataXML_SystemOnly))
         {
             return (Control)note.Parent;
         }
     }
     return null;*/
 }
コード例 #24
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);

            if (Columns.Length < 5) {
                PropertyInfo[] propertiesInfo = typeof(Market).GetProperties ();
                // rebuild Submision  Market Table
                DataTable Table2 = CreateDataTable (propertiesInfo);
                //	NewMessage.Show (Table.Columns.Count.ToString ());
                //ForceTableUpdate (Table2);
                dataSource = Table2;
                Table = new TablePanel (dataSource, HandleCellBeginEdit, Columns, GoToNote, this.Caption, GetRandomTableResults);
                Table.Dock = DockStyle.Fill;
                Table.BringToFront ();

                dashboardMarketEdit.AddMarketRow (propertiesInfo, Table2, Market.DefaultMarket ());
            }

            //ToolTip Tipster = new ToolTip ();

            CaptionLabel.Dock = DockStyle.Top;

            Tabs = new TabControl ();
            Tabs.Margin = new Padding(5);
            Tabs.Dock = DockStyle.Fill;

            TabPage SubmissionPage = new TabPage (Loc.Instance.GetString ("Submissions"));
            TabPage MarketList = new TabPage (Loc.Instance.GetString ("Markets"));
            TabPage MarketAdvanced = new TabPage (Loc.Instance.GetString ("Advanced"));

            Tabs.SelectedIndexChanged += HandleSelectedIndexTabPagesChanged;
            Tabs.TabPages.Add (SubmissionPage);
            Tabs.TabPages.Add (MarketList);
            Tabs.TabPages.Add (MarketAdvanced);

            //
            // SUBMISSION PAGE SETUP
            //

            SubmissionPanel = new dashboardSubs (dashBoardsSubmissionsIsUpdatingProject, true);
            SubmissionPanel.SupressRefresh= true;
            SubmissionPanel.Dock = DockStyle.Fill;
            SubmissionPage.Controls.Add (SubmissionPanel);
            SubmissionPanel.BringToFront ();

             ToggleBetweenListAndEditSubmissions = new Button ();

            ToggleBetweenListAndEditSubmissions.Dock = DockStyle.Bottom;
            ToggleBetweenListAndEditSubmissions.Enabled = false;
            // we use tag to disctate the text 0 = pressme to get list of submission
            // 1 mean sgo back to Submission Overview
            ToggleBetweenListAndEditSubmissions.Tag = 0;
            UpdateToggleButtonText();
            ToggleBetweenListAndEditSubmissions.Click += HandleToggleBetweenListAndEditingClick;

            SubmissionPage.Controls.Add (ToggleBetweenListAndEditSubmissions);
            LastQuery = new ComboBox ();
            ViewOfProjectSubmissions = new ViewProjectSubmissions (GetProjectGUID, GetMarketObjectByGUID, this.Layout);
            ViewOfProjectSubmissions.Visible = false;
            ViewOfProjectSubmissions.Dock = DockStyle.Fill;

            SubmissionPage.Controls.Add (ViewOfProjectSubmissions);
            ViewOfProjectSubmissions.BringToFront ();

            //
            // MARKET
            //
            if (dataSource == null) throw new Exception("null datasource");

             MarketEdit = new dashboardMarketEdit (dataSource, dashBoardsMarketUpdating, this.Layout);

            MarketEdit.Dock = DockStyle.Fill;

            MarketList.Controls.Add (MarketEdit);
            MarketEdit.BringToFront ();

            //
            // Market Page (Advanced) Setup
            //
            ParentNotePanel.Controls.Remove (this.Table);
            MarketAdvanced.Controls.Add (this.Table);

            //
            // Submit Footer
            //

            SubmitPanel = new GroupBox ();
            SubmitPanel.BackColor = Color.Lavender;
            SubmitPanel.ForeColor = Color.Black;
            SubmitPanel.Height = 150;
            SubmitPanel.Padding = new Padding(5);
            SubmitPanel.Dock = DockStyle.Bottom;
            SubmitPanel.Text = Loc.Instance.GetString ("ADD A SUBMISSION");

            //			LabelProject = new Label ();
            //			LabelProject.Text = DefaultProjectLabel; //Loc.Instance.GetString ("Current Project: ");
            //			LabelProject.Dock = DockStyle.Top;
            //
            //			LabelMarket = new Label ();
            //			LabelMarket.Text = Loc.Instance.GetString ("Current Market: ");
            //			LabelMarket.Dock = DockStyle.Top;

            Warnings = new Label ();
            Warnings.Text = Loc.Instance.GetString ("Warnings ");
            Warnings.Dock = DockStyle.Fill;

            AddSubmission = new Button ();
            AddSubmission.Text = Loc.Instance.GetStringFmt ("Submit {0} to {1}", DefaultProjectLabel,SelectedMarket);
            AddSubmission.Click += HandleAddSubmissionClick;
            AddSubmission.Dock = DockStyle.Bottom;

            //			SubmitPanel.Controls.Add (LabelMarket);
            //			SubmitPanel.Controls.Add (LabelProject);

            SubmitPanel.Controls.Add (Warnings);

            SubmitPanel.Controls.Add (AddSubmission);

            System.Collections.Generic.List<string> queries = LayoutDetails.Instance.TableLayout.GetListOfStringsFromSystemTable (LayoutDetails.SYSTEM_QUERIES, 1);
            queries.Sort ();
            LastQuery.DropDownStyle = ComboBoxStyle.DropDownList;
            foreach (string s in queries) {
                LastQuery.Items.Add (s);
            }
            //LastQuery.SelectedItem = CurrentFilter;

            int lastQueryIndex =queries.IndexOf(CurrentFilter);// queries.Find(s=>s==CurrentFilter);
            LastQuery.SelectedIndex = lastQueryIndex;
            LastQuery.SelectedIndexChanged+= HandleSelectedIndexLastQueryChanged;
            SubmissionPanel.CurrentFilter = CurrentFilter;
            //LastQuery.Text = "LastQuery";
            LastQuery.Dock = DockStyle.Top;
            //LastQuery.Enabled = false;
            SubmissionPage.Controls.Add (LastQuery);

            ParentNotePanel.Controls.Add (SubmitPanel);

            ParentNotePanel.Controls.Add (Tabs);
            Tabs.BringToFront();

            // Had to remove this because the table lookups require
            // the presence of the accessory tables which might not exist
            // at this point in the load cycle
            //	SubmissionPanel.RefreshMe();
            SubmissionPanel.SupressRefresh= false;

            Table.ReadOnly = this.ReadOnly;

            LayoutDetails.Instance.UpdateAfterLoadList.Add (this);
        }
コード例 #25
0
        /// <summary>
        /// TEMP HACK
        /// 
        /// For loading notes from the original YOM
        /// 
        /// Loads from the appropriate Data Location.
        /// </summary>
        /// <param name='GUID'>
        /// The unique identifier representing this Layout
        /// </param>
        /// <returns>
        /// <c>true</c>, if from was loaded, <c>false</c> otherwise.
        /// </returns>
        /// <param name='sFile'>
        /// S file.
        /// </param>
        public string LoadFromOld(string sFile, LayoutPanelBase layoutPanel, string OVERRIDEGUIDFORBULKTESTING)
        {
            string returnvalue = Constants.BLANK;
            System.IO.FileInfo fi = new System.IO.FileInfo (sFile);

            Name = sFile;
            Status = "Imported";
            ShowTabs = false;

            // changed this, might not work.
            try
            {
            XmlSerializer serializer = new XmlSerializer (typeof(NoteDataXML[]),
                                                          LayoutDetails.Instance.ListOfTypesToStoreInXML ());

            System.IO.StreamReader reader = new System.IO.StreamReader (sFile);
            NoteDataXML[] cars = (NoteDataXML[])serializer.Deserialize (reader);

            if (null != cars) {

                if (IsSubPanel == false) {
                    // 2 passes -- the first is just to find the linktable
                    NoteDataXML_Table table = null; //new NoteDataXML_Table();
                    for (int i = 0; i < cars.Length; i++) {
                        if (cars [i].GetType () == typeof(NoteDataXML_Table)) {
                            // we have found a table
                            // is it link table?
                            if (cars [i].GuidForNote == LinkTable.STICKY_TABLE) {
                                //  yes. Link table
                                table = (NoteDataXML_Table)cars [i];
                            }
                        }
                    }
                    if (null == table) {
                        throw new Exception ("You must have a linktable on each imported record");
                    }

                    CreateLinkTableIfNecessary (table, layoutPanel);
                }

                dataForThisLayout = new List<NoteDataInterface> ();
                for (int i = 0; i < cars.Length; i++) {

                    // some notes will be passed in and they are merely links to PANELS (other files). Load these too.
                    if (cars [i].IsPanel == true) {
                        // now load this file into the database
                        //using the autogenerate name
                        string subpanel = System.IO.Path.Combine (fi.Directory.FullName, "panel" + cars [i].GuidForNote + ".xml");
                        if (System.IO.File.Exists (subpanel) == true) {
                            LayoutDatabase tempLayoutDatabaseForSubPanel = new LayoutDatabase (cars [i].GuidForNote);

                            tempLayoutDatabaseForSubPanel.IsSubPanel = true;

                            if (tempLayoutDatabaseForSubPanel.LoadFromOld (subpanel, null, Constants.BLANK)!= Constants.BLANK) {
                                tempLayoutDatabaseForSubPanel.SaveTo ();
                            } else {
                                NewMessage.Show (String.Format ("{0} subpanel failed to load", subpanel));
                            }
                        } else {
                            NewMessage.Show (Loc.Instance.GetStringFmt ("The file {0} did not exist", subpanel));
                        }
                    }

                    dataForThisLayout.Add (cars [i]);

                }

            }

            reader.Close ();

            // remove the 'feeder' note
            NoteDataXML feeder = (NoteDataXML)dataForThisLayout [0];
            string[] LayoutElements = feeder.Caption.Split (new char[1] {'#'});
            for (int i = 0; i < 12; i++) {
                lg.Instance.Line ("LayoutDatabase->LoadFromOld", ProblemType.MESSAGE, String.Format ("Length {0}, i={1}, value={2}, feederGuid={3}", LayoutElements.Length,
                                                                                                     i, LayoutElements [i], feeder.GuidForNote));

                try {
                    switch (i) {
                    case 0:
                        this.Name = LayoutElements [i];
                        break;
                    case 1:
                        lg.Instance.Line ("LayoutDatabase->LoadFromOld", ProblemType.MESSAGE, "converting " + LayoutElements [i], Loud.CTRIVIAL);
                        //double date = Double.Parse (LayoutElements [i]);
                        //this.DateCreated = DateTime.FromOADate (date);
                        DateTime aDate = DateTime.Now;
                        DateTime.TryParse(LayoutElements [i], out aDate);
                        this.DateCreated = aDate;
                        break;//date
                    case 2:
                        this.Notebook = LayoutElements [i];
                        break; //directory
                    case 3:

                        this.LayoutGUID = LayoutElements [i];
                        break;
                    case 4:

                        /// JUST THIS REMAINS!

                        break; //page.HighPriority); break;
                    case 5:

                        int hits = 0;
                        Int32.TryParse (LayoutElements [i], out hits);
                        this.Hits = hits;
                        break;// page.Hits); break;
                    case 6:
                        this.Keywords = LayoutElements [i];
                        break;// Keywords); break;
                    case 7:
                        DateTime aDate2 = DateTime.Now;
                        DateTime.TryParse (LayoutElements [i], out aDate2);
                        this.DateEdited = aDate2;
                        break; // page.LastEdited); break;
                    case 8:
                        this.Section = LayoutElements [i];
                        break;// page.Section); break;
                    case 9:
                        int TheStars = 0;
                        Int32.TryParse (LayoutElements [i], out TheStars);
                        this.Stars = TheStars;
                        break;// page.Stars); break;
                    case 10:
                        this.Status = LayoutElements [i];
                        break;// page.StatusType); break;
                    case 11:
                        this.Subtype = LayoutElements [i];
                        break;// page.SubType);

                    case 12: this.Source = LayoutElements[i];
                        break;
                    }
                } catch (Exception ex) {
                    NewMessage.Show (ex.ToString ());
                }
            }

            if (OVERRIDEGUIDFORBULKTESTING != Constants.BLANK) {
                this.LayoutGUID = OVERRIDEGUIDFORBULKTESTING;
            }
            dataForThisLayout.Remove (feeder);
            returnvalue = this.LayoutGUID;
            }
            catch (Exception ex)
            {
                NewMessage.Show (String.Format ("Import failed for file {0} with error {1}", sFile, ex.ToString()));
            }

            return returnvalue;
        }
コード例 #26
0
 public ArrayList GetListOfPages(string s, ref bool b, LayoutPanelBase usedLayout)
 {
     b = false;
     return null;
 }
コード例 #27
0
 public void LoadFrom(LayoutPanelBase Layout)
 {
     throw new Exception("not done");
 }
コード例 #28
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);
            CaptionLabel.Dock = DockStyle.Top;

            StoryBoard = new Storyboard();
            StoryBoard.Dock = DockStyle.Fill;

            ParentNotePanel.Controls.Add (StoryBoard);
            StoryBoard.BringToFront();
            StoryBoard.Enter+= (object sender, EventArgs e) => 	BringToFrontAndShow();;

            StoryBoard.FactMode(this.Factmode);
            //
            //			//moved to end to handle refersh issues
            StoryBoard.Source = this.GuidForNote;//((NotePanelStoryboard)note).groupEms1.Source = note.appearance.GUID;

            // We do not need to call the SetTable function because this is handled when a table isc reated
            StoryBoard.StickyTable = this.Layout.GetLinkTable();
            StoryBoard.NeedSave += HandleNeedSave;

            StoryBoard.ViewStyle = this.ViewStyle;
            /*here*/
            if (this.Storyboard_ShowPreview == true)
            {
                StoryBoard.ShowPreview();
            }
            if (this.Storyboard_SplitterSetting > 0)
            {
                // make it run through autmoated test
                if (true == StoryBoard.Visible )
                {
                    StoryBoard.SplitterPosition = this.Storyboard_SplitterSetting;
                }
            }

            StoryBoard.GetNoteForGroupEmPreview += HandleGetNoteForGroupEmPreview;
            StoryBoard.GroupNameTruncateLength = 15;
            StoryBoard.ShowToolbar = true;
            StoryBoard.AddItemFromMenu += HandleAddItemFromMenu;
            StoryBoard.ClickItem += HandleStoryBoardClickItem;
            StoryBoard.InitializeGroupEmFromExternal();

            // trying to get htis to work better
            LayoutDetails.Instance.UpdateAfterLoadList.Add (this);

            // will not add these unless I NEED them (I'm assuming some of this is for selecting things?
            //			((NotePanelStoryboard)note).groupEms1.DragNote += new GroupEm.groupEms.CustomEventHandler2(groupEms1_DragNote);
            //			((NotePanelStoryboard)note).groupEms1.listView.MouseDown += new MouseEventHandler(listView_MouseDown);
            //			((NotePanelStoryboard)note).groupEms1.listView.onScroll += new ScrollEventHandler(listView_onScroll);
            //     ((NotePanelStoryboard)note).groupEms1.listView.MouseDown += findBar_MouseDown;
            //
        }
コード例 #29
0
        /// <summary>
        /// Gets the list of layouts.
        /// </summary>
        /// <returns>
        /// The list of layouts.
        /// </returns>
        /// <param name='filter'>
        /// Filter.
        /// </param>
        /// <param name="OverrideLayoutToUseToFindTable">>
        /// 
        public static List<NameAndGuid> GetListOfLayouts(string filter, string likename, bool FullTextSearch, LayoutPanelBase OverrideLayoutToUseToFindTable, string OverrideQuery)
        {
            List<NameAndGuid> result = new List<NameAndGuid> ();
            try {
                string test = Constants.BLANK;
                if (filter.IndexOf ("CODE_KEYWORD_AUTO") > -1) {
                    // a keyword was clicked on the interface
                    // we now extract it from
                    //CODE_KEYWORD_AUTO, KEYWORD
                    string[] items = filter.Split (new char[1] {','});
                    if (items != null && items.Length == 2) {
                        string value = items [1];

                        test = String.Format ("{0} LIKE '%{1}%'", dbConstants.KEYWORDS, value);
                        //NewMessage.Show (test);
                    }
                }

                // cleanup on likename (can't have apostophes
                if (likename.IndexOf ("\"") > 0) {
                    likename = likename.Replace ("\"", "");
                }
                if (likename.IndexOf ("'") > 0) {
                    likename = likename.Replace ("'", "");
                }

                BaseDatabase MyDatabase = CreateDatabase ();

                if (MyDatabase == null) {
                    throw new Exception ("Unable to create database in LoadFrom");
                }

                // it may be blank if we have done a Keyword click filter, from above
                if (Constants.BLANK == test) {
                    test = LookupFilter (filter, OverrideLayoutToUseToFindTable); //"and notebook='Writing' ";
                }
                if (test != Constants.BLANK) {
                    // initial implementation influenced by needs of SUbmission list
                    // always has an existing Where clause (no subpanels) so we need to
                    // predicate with an AND
                    test = String.Format ("and {0}", test);
                }
                if (Constants.BLANK == filter)
                    test = "";

                List<object[]> mySubpanellist = null;

                // Add a name filter
                if (false == FullTextSearch && Constants.BLANK != likename) {
                    test = String.Format ("and name like '%{0}%'", likename);
                } else if (true == FullTextSearch) {
                    // modify the query to handle full text searching
                    test = String.Format ("and xml like '%{0}%'", likename);

                    // 18/06/2014
                    // Override layout query
                    if (OverrideQuery != Constants.BLANK)
                    {
                        test = OverrideQuery;
                    }

                    // we need to find subpanel items too
                    // this is, text stored in subpanel needs to register too, though this will be tricky.
                    mySubpanellist = MyDatabase.GetValues (dbConstants.table_name, new string[4] {dbConstants.GUID, dbConstants.NAME, dbConstants.BLURB
                    ,dbConstants.WORDS},
                dbConstants.SUBPANEL, 1, String.Format (" order by {0} COLLATE NOCASE", dbConstants.NAME), test);
                }

                // 18/06/2014
                // Override layout query
                if (OverrideQuery != Constants.BLANK)
                {
                    test = OverrideQuery;
                }

                List<object[]> myList = MyDatabase.GetValues (dbConstants.table_name, new string[4] {dbConstants.GUID, dbConstants.NAME, dbConstants.BLURB
            ,dbConstants.WORDS},
            dbConstants.SUBPANEL, 0, String.Format (" order by {0} COLLATE NOCASE", dbConstants.NAME), test);

                if (myList != null && myList.Count > 0) {

                    foreach (object[] o in myList) {
                        NameAndGuid record = new NameAndGuid ();
                        record.Guid = o [0].ToString ();
                        record.Caption = o [1].ToString ();
                        record.Blurb = o [2].ToString ();
                        int Words = 0;
                        Int32.TryParse (o [3].ToString (), out Words);
                        record.Words = Words;
                        lg.Instance.Line ("MasterOfLayouts->GetListOfLayouts", ProblemType.MESSAGE, "adding to ListOfLayouts " + record.Caption);
                        result.Add (record);
                    }
                }

                //
                // Search in Subpanels too
                //

                if (mySubpanellist != null && mySubpanellist.Count > 0) {
                    //NewMessage.Show ("Some search terms were found on subpanels");
                    foreach (object[] o in mySubpanellist) {
                        if (o [0].ToString () != Constants.BLANK) {
                            NameAndGuid record = new NameAndGuid ();
                            record.Guid = GetSubpanelsParent (o [0].ToString ());
                            string nameofsubpanel = o [1].ToString ();
                            if (record.Guid != Constants.BLANK) {

                                // we look for the master parent,
                                // if we have nested children
                                while (IsSubpanel(record.Guid) == true && Constants.BLANK != record.Guid) {
                                    record.Guid = GetSubpanelsParent (record.Guid);
                                }

                                record.Caption = GetNameFromGuid (record.Guid);
                                if (ExistsByGUID (record.Guid) == false) {
                                    NewMessage.Show (Loc.Instance.GetStringFmt ("Does not exist: {0} Name: {1} Name of Subpanel: {2}", record.Guid, record.Caption, nameofsubpanel));
                                }
                                // don't bother adding if blank
                                if (record.Caption != Constants.BLANK) {
                                    // also don't bother adding if already exists
                                    record.Words = 0;
                                    record.Blurb = "";
                                    result.Add (record);
                                }

                            }

                        }
                    }
                }

                MyDatabase.Dispose ();
            } catch (Exception ex) {
                NewMessage.Show (ex.ToString());
            }
            return result;
        }
コード例 #30
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);

            CaptionLabel.Dock = DockStyle.Top;

            TablePanel = new TableLayoutPanel ();
            TablePanel.RowCount = 4;
            TablePanel.ColumnCount = 2;
            TablePanel.Dock = DockStyle.Top;
            ParentNotePanel.Controls.Add (TablePanel);
            TablePanel.BringToFront ();
            TablePanel.AutoSize = true;
            //
            // GENDER
            //

            Label GenderLabel = new Label ();
            GenderLabel.Text = Loc.Instance.GetString ("Gender");
            GenderLabel.Click += (object sender, EventArgs e) => BringToFrontAndShow ();
            ComboBox GenderCombo = new ComboBox ();
            GenderCombo.DropDownStyle = ComboBoxStyle.DropDownList;
            GenderCombo.Items.Add ("Male");
            GenderCombo.Items.Add ("Female");
            GenderCombo.Items.Add ("Other");

            if (Gender == Constants.BLANK) {
                GenderCombo.SelectedIndex = 0;
            } else {
                for (int i = 0; i < GenderCombo.Items.Count; i++) {
                    //NewMessage.Show (String.Format ("Comparing {0} to {1}", GenderCombo.Items [i].ToString (), Gender));
                    if (GenderCombo.Items [i].ToString () == Gender) {
                        GenderCombo.SelectedIndex = i;
                        break;
                    }
                }
            }
            GenderCombo.SelectedIndexChanged += HandleGenderSelectedIndexChanged;

            //
            // PRIORITY
            //

            Label PriorityLabel = new Label ();
            PriorityLabel.Text = Loc.Instance.GetString ("Priority");
            PriorityLabel.Click += (object sender, EventArgs e) => BringToFrontAndShow ();

            NumericUpDown PriorityPicker = new NumericUpDown ();
            PriorityPicker.Maximum = 100;
            PriorityPicker.Minimum = 0;
            PriorityPicker.Value = Priority;
            PriorityPicker.ValueChanged += HandleValueChanged;

            ToolTip tipster = new ToolTip ();
            tipster.SetToolTip (PriorityPicker,
                               Loc.Instance.GetString ("The higher the more likely Proofreader will select this character as the current speaker."));

            //
            // Alias
            //

            Label AliasLabel = new Label ();
            AliasLabel.Text = Loc.Instance.GetString ("Alias");
            AliasLabel.Click += (object sender, EventArgs e) => BringToFrontAndShow ();
            TextBox AliasEdit = new TextBox ();
            tipster.SetToolTip (AliasEdit, Loc.Instance.GetString ("Enter a comma separated list of alternate names for this character to assist the Proofreader in determining the current speaker."));

            AliasEdit.Text = Alias;
            AliasEdit.TextChanged += HandleTextChanged;
            //
            // COLOR
            //
             ColorLabel = new Label ();
            ColorLabel.Text = Loc.Instance.GetString ("Color");
            ColorLabel.Click += (object sender, EventArgs e) => BringToFrontAndShow ();
             ColorCombo = new ComboBox ();
            ColorCombo.DropDownStyle = ComboBoxStyle.DropDownList;
            int count = 0;
            int matchcount = 0;
            ColorCombo.DisplayMember = "Name";

            //	CharacterColor = Color.FromArgb(characterColorInt);
            //	NewMessage.Show("Loading Color " + CharacterColor.Name);
            foreach (Color c in LayoutDetails.Instance.HighlightColorList) {
                ColorCombo.Items.Add (c);
                //NewMessage.Show ("Comparing " + c.Name + " to " + CharacterColor.Name);
                if (c.Name ==  ColorName)
                {
                    //NewMessage.Show ("Match " + c.Name);
                    matchcount = count;
                }
                count++;
            }

            ColorCombo.SelectedIndex = matchcount;
            ColorCombo.SelectedIndexChanged+= HandleSelectedColorIndexChanged;

            ColorLabel.BackColor = (Color)ColorCombo.SelectedItem;
            ColorLabel.ForeColor = TextUtils.InvertColor(ColorLabel.BackColor);

            ToolStripButton ToggleView = new ToolStripButton();
            ToggleView.Text = Loc.Instance.GetString ("Toggle View");
            ToggleView.Click+= HandleToggleViewClick;

            TablePanel.Controls.Add(GenderLabel,0,0);
            TablePanel.Controls.Add(GenderCombo,1,0);
            TablePanel.Controls.Add(PriorityLabel,0,1);
            TablePanel.Controls.Add(PriorityPicker,1,1);
            TablePanel.Click+= (object sender, EventArgs e) => BringToFrontAndShow();
            TablePanel.Controls.Add(AliasLabel,0,2);
            TablePanel.Controls.Add(AliasEdit,1,2);

            TablePanel.Controls.Add (ColorLabel,0, 3);
            TablePanel.Controls.Add (ColorCombo,1, 3);

            properties.DropDownItems.Add (ToggleView);
            SetupForView();

            richBox.BringToFront();
        }
コード例 #31
0
 /// <summary>
 /// Returns the number of acceptances
 /// </summary>
 /// <returns>
 /// The acceptances.
 /// </returns>
 public static int CountAcceptances(LayoutPanelBase CurrentLayout, string ProjectGUID)
 {
     int count = 0;
     string filter= "";
     List<string> result = CurrentLayout.GetListOfStringsFromSystemTable (TABLE_ReplyTypes, 1, String.Format ("2|{0}", CODE_ACCEPTANCE), false);
     if (result != null && result.Count > 0) {
         foreach (string s in result)
         {
             string SPACE ="";
             if (filter != "")
             {
                 SPACE = " or ";
             }
             filter = filter + SPACE + String.Format ("data7='{0}'", s);
         }
         //NewMessage.Show (filter);
         List<TransactionBase> allsubs = LayoutDetails.Instance.TransactionsList.GetEventsForLayoutGuid
             ("*",String.Format(" and ({0}) and {1}='{2}' and {3}='{4}'", filter, TransactionsTable.TYPE,  TransactionSubmission.T_SUBMISSION,
                                TransactionsTable.DATA1_LAYOUTGUID, ProjectGUID));
         if (allsubs != null)
         {
             count = allsubs.Count;
         }
     }
     return count;
 }
コード例 #32
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);
            try {
                 BottomInfo = new Panel();
                BottomInfo.Dock = DockStyle.Bottom;
                BottomInfo.Height = 75;

                BottomInfo.AutoScroll = true;

                 refreshButton = new Button();
                refreshButton.Dock = DockStyle.Left;
                refreshButton.Name = REFRESH_BUTTON;
                refreshButton.Text = Loc.Instance.GetString("O");
                refreshButton.Click += (object sender, EventArgs e) => {
                    refreshButton.Cursor = Cursors.WaitCursor;
                    refreshButton.Enabled = false;
                    ResetBackgroundWorker();

                };

                BottomInfo.Controls.Add (refreshButton);

                ParentNotePanel.Controls.Add (BottomInfo);

                ToolStripMenuItem TokenItem =
                    LayoutDetails.BuildMenuPropertyEdit (Loc.Instance.GetString("Token: [[{0}]]"),
                                                         Token,
                                                         Loc.Instance.GetString ("Enter the token you use to annotate facts discussing this topic in the text."),
                                                         HandleTokenChange );

                properties.DropDownItems.Add (new ToolStripSeparator());
                properties.DropDownItems.Add (TokenItem);

                ToolStripMenuItem FactParseNoteItem =
                    LayoutDetails.BuildMenuPropertyEdit (Loc.Instance.GetString("Note With Fact Details: {0}"),
                                                         FactParseNote,
                                                         Loc.Instance.GetString ("Indicate a note on this layout that contains fact-parsing instructions."),
                                                         HandleFactChange );

                properties.DropDownItems.Add (FactParseNoteItem);

            } catch (Exception ex) {
                NewMessage.Show (ex.ToString ());
            }

            UpdateView ();
        }
コード例 #33
0
        public ArrayList GetListOfPages(string sLine, ref bool bGetWords, LayoutPanelBase usedLayout)
        {
            //NewMessage.Show ("YOM GetListOfPages for line = " + sLine);
            ArrayList ListOfParsePages = new ArrayList();
            string[] items = sLine.Split(',');
            if (items != null)
            {
                string sStoryboardName = items[1];
                string sGroupMatch = items[2];
                if (sLine.IndexOf(",words") > -1)
                {
                    bGetWords = true;
                }
                ListOfParsePages.AddRange(usedLayout.GetListOfGroupEmNameMatching(sStoryboardName, sGroupMatch));

                //NewMessage.Show(sStoryboardName + " " + sGroupMatch);
            }
            return ListOfParsePages;
        }
コード例 #34
0
        public ViewProjectSubmissions(Func<string> _GetProjectGUID, getmarketbyguiddelegate _GetMarketByGUID, LayoutPanelBase _Layout)
        {
            //LastQuery = _LastQuery;

            myLayout = _Layout;
            GetProjectGUID = _GetProjectGUID;
            GetMarketByGUID = _GetMarketByGUID;

            Label Title = new Label();
            Title.Text= "List of Submissions";
            Title.Dock = DockStyle.Top;

             Overall = new Label();

            Overall.MouseEnter+= HandleMouseEnter;
            Overall.MouseLeave+= HandleMouseLeave;
            Overall.Dock = DockStyle.Top;
            Overall.Text = Loc.Instance.GetString ("OVERALL DETAILS TBD");

            ToolStrip Buttons = new ToolStrip();

            Count = new ToolStripLabel();
            Count.Text = "0";

             DeleteSelected = new ToolStripButton();
            DeleteSelected.Text = Loc.Instance.GetString ("Delete Submission");
            DeleteSelected.Click+= HandleDeleteSubmissionClick;

             GenerateCoverLetter = new ToolStripButton();
            GenerateCoverLetter.Text = Loc.Instance.GetString ("Cover Letter");
            GenerateCoverLetter.Click+= HandleGenerateCoverLetterClick;

             MakeDestination = new ToolStripButton();
            MakeDestination.Text = Loc.Instance.GetString ("Change Submission to Destination");
            MakeDestination.Click+= HandleMakeDestinationsClick;
            MakeDestination.Enabled = false;

             MakeSubmission = new ToolStripButton();
            MakeSubmission.Text = Loc.Instance.GetString ("Change Destination to Submission");
            MakeSubmission.Click+= HandleChangeDestinationToSubmissionClick;;
            MakeSubmission.Enabled = false;

            Buttons.Items.Add (Count);
            Buttons.Items.Add (DeleteSelected);
            Buttons.Items.Add (GenerateCoverLetter);
            Buttons.Items.Add (MakeDestination);
            Buttons.Items.Add (MakeSubmission);

             ListOfSubs = new ListBox();
            ListOfSubs.DoubleClick+= HandleListOfSubsDoubleClick;
            ListOfSubs.Click+= HandleListOfSubmissionsClick;
            ListOfSubs.Dock = DockStyle.Fill;
            ListOfSubs.Height = 300;

            Label DestinationsTitle = new Label();
            DestinationsTitle.Text = Loc.Instance.GetString ("Destinations");
            DestinationsTitle.Dock = DockStyle.Bottom;

            Destinations = new ListBox();
            Destinations.Dock = DockStyle.Bottom;
            Destinations.Click+= HandleDestinationsClick;

            this.Controls.Add (DestinationsTitle);
            this.Controls.Add (Destinations);

            this.Controls.Add (ListOfSubs);
            ListOfSubs.BringToFront();
            this.Controls.Add (Buttons);

            this.Controls.Add (Title);
            this.Controls.Add (Overall);
            //just add the transaction objects like workflow
            //BuildList ();
        }
コード例 #35
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);

            CaptionLabel.Dock = DockStyle.Top;

            TablePanel = new TableLayoutPanel ();

            TablePanel.Height = 200;
            TablePanel.RowCount = 5;
            TablePanel.ColumnCount = 2;
            TablePanel.Dock = DockStyle.Top;
            ParentNotePanel.Controls.Add (TablePanel);
            TablePanel.BringToFront ();
            //TablePanel.AutoSize = true;

            ToolTip Tipster = new ToolTip ();

            Label TypeOfSend = new Label ();
            TypeOfSend.Text = Loc.Instance.GetString ("Type");

            ComboBox ComboTypeOfSend = new ComboBox ();
            ComboTypeOfSend.DropDownStyle = ComboBoxStyle.DropDownList;
            //ComboTypeOfSend.DataSource = Enum.GetValues(typeof(ControlFile.convertertype));
            int selected = 0;
            ControlFile.convertertype[] vals = (ControlFile.convertertype[])Enum.GetValues (typeof(ControlFile.convertertype));
            for (int i = 0; i < vals.Length; i++) {
                ComboTypeOfSend.Items.Add (vals [i]);
                if (vals [i].ToString () == ConverterType.ToString ()) {
                    selected = i;
                }
            }
            ComboTypeOfSend.SelectedIndex = selected;
            //NewMessage.Show ("Trying to set " + ConverterType.ToString ());
            //ComboTypeOfSend.SelectedText = ConverterType.ToString();
            //ComboTypeOfSend.SelectedValue = ConverterType.ToString();
            //ComboTypeOfSend.DataBindings();
            //ComboTypeOfSend.SelectedIndex = (int)ConverterType;
            ComboTypeOfSend.SelectedIndexChanged += HandleSelectedConverterTypeIndexChanged;

            Label Underscores = new Label ();
            Underscores.Dock = DockStyle.Fill;
            Underscores.Text = Loc.Instance.GetString ("Underscores...");

            CheckBox UnderscoresAsUnderline = new CheckBox ();
            UnderscoresAsUnderline.Dock = DockStyle.Top;
            UnderscoresAsUnderline.Width = 300;
            UnderscoresAsUnderline.Text = "Become Underline";
            UnderscoresAsUnderline.Checked = UnderscoresUnderline;
            Tipster.SetToolTip (UnderscoresAsUnderline, "If true underscore text will be underlined otherwise it will be in italics.");

            //Underscores.AutoSize = true;
            CheckBox UnderscoreKeep = new CheckBox ();
            UnderscoreKeep.Dock = DockStyle.Top;
            UnderscoreKeep.Text = Loc.Instance.GetString ("Keep Underscores");
            UnderscoreKeep.Checked = UnderscoresRule;
            Tipster.SetToolTip (UnderscoreKeep, Loc.Instance.GetString ("If set to true then underscores will always show up as underscore, no matter the other settings."));
            UnderscoreKeep.Click += (object sender, EventArgs e) => UnderscoresRule = (sender as CheckBox).Checked;

            UnderscoresAsUnderline.Click += (object sender, EventArgs e) => UnderscoresUnderline = (sender as CheckBox).Checked;

            Label BodyTextLabel = new Label ();
            BodyTextLabel.Dock = DockStyle.Fill;
            BodyTextLabel.Text = Loc.Instance.GetString ("Body Text");

            TextBox BodyTextText = new TextBox ();
            BodyTextText.Text = BodyText;
            BodyTextText.Dock = DockStyle.Fill;
            BodyTextText.TextChanged += (object sender, EventArgs e) => BodyText = (sender as TextBox).Text;
            BodyTextText.Width = 200;

            Label TemplateLabel = new Label ();
            TemplateLabel.Dock = DockStyle.Fill;
            TemplateLabel.Text = Loc.Instance.GetString ("Template");

            TextBox TemplateTextBox = new TextBox ();
            TemplateTextBox.Text = TemplateText;
            TemplateTextBox.Dock = DockStyle.Fill;
            Tipster.SetToolTip (TemplateTextBox, Loc.Instance.GetString ("This is the Word template file, if generating a word document this will be the template used"));
            TemplateTextBox.TextChanged += (object sender, EventArgs e) => TemplateText = (sender as TextBox).Text;
            TemplateTextBox.Width = 200;

            // invokes a modal PropertyGrid for editing the entire fille
            Button EditAll = new Button ();
            EditAll.Text = Loc.Instance.GetString ("Edit All Details");
            EditAll.Click += HandleEditAllClick;
            EditAll.Dock = DockStyle.Fill;

            TablePanel.Controls.Add (TypeOfSend, 0, 0);
            TablePanel.Controls.Add (ComboTypeOfSend, 1, 0);

            TablePanel.Controls.Add (Underscores, 0, 1);
            TablePanel.Controls.Add (UnderscoresAsUnderline, 1, 1);
            TablePanel.Controls.Add (UnderscoreKeep, 1, 2);

            TablePanel.Controls.Add (BodyTextLabel, 0, 3);
            TablePanel.Controls.Add (BodyTextText, 1, 3);

            TablePanel.Controls.Add (TemplateLabel, 0, 4);
            TablePanel.Controls.Add (TemplateTextBox, 1, 4);

            Button Generate = new Button();
            Generate.Dock = DockStyle.Fill;
            Generate.Click+= HandleGenerateClick;
            Generate.Text = Loc.Instance.GetString ("Generate");

            TablePanel.Controls.Add (Generate, 0, 5);

            TablePanel.Controls.Add (EditAll, 1, 5);

            //			TablePanel.ColumnStyles[0].SizeType  = SizeType.Percent;;
            //			TablePanel.ColumnStyles[0].Width = 25;
            //
            //			TablePanel.ColumnStyles[1].SizeType  = SizeType.Percent;;
            //			TablePanel.ColumnStyles[1].Width = 75;
            //			foreach (ColumnStyle style in TablePanel.ColumnStyles) {
            //			//	NewMessage.Show (style.ToString());
            //				style.SizeType = SizeType.Percent;
            //				style.Width = 50;
            //			}

            if (richBox.Text == Constants.BLANK) {
                richBox.Text = Loc.Instance.GetStringFmt("[[index]]{0}Enter Page Name Here Followed By Line Space{0}", Environment.NewLine);
            }
            richBox.BringToFront();

            TablePanel.ColumnStyles.Clear();
            for (int i = 0; i < TablePanel.ColumnCount; i++)
            {
                TablePanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50.0f));
            }

            TablePanel.RowStyles.Clear();
            for (int i = 0; i < TablePanel.RowCount; i++)
            {
                TablePanel.RowStyles.Add(new RowStyle(SizeType.AutoSize));
            }
        }
コード例 #36
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);
            try {
                TabControl pages = new TabControl ();

                ParentNotePanel.Controls.Add (pages);
                pages.Dock = DockStyle.Fill;
                pages.BringToFront();

                TabPage GridPage = new TabPage (Loc.Instance.GetString ("Advanced"));
                TabPage CheckPage = new TabPage (Loc.Instance.GetString ("Checklist"));
                pages.TabPages.Add (CheckPage);
                pages.TabPages.Add (GridPage);

                ParentNotePanel.Controls.Remove (this.Table);
                GridPage.Controls.Add (this.Table);

                // Set up check list
                checkers = new CheckedListBox ();
                checkers.Dock = DockStyle.Fill;

                UpdateCheckpage (checkers);
                checkers.ItemCheck+= (object sender, ItemCheckEventArgs e) => SetSaveRequired(true);
                checkers.SelectedIndexChanged+= HandleSelectedIndexChanged;

                preview = new TextBox();
                preview.Dock = DockStyle.Bottom;
                preview.Height = 75;
                preview.Multiline = true;
                preview.ReadOnly = true;
                preview.ScrollBars = ScrollBars.Both;
                    CheckPage.Controls.Add (checkers);
                CheckPage.Controls.Add (preview);

            } catch (Exception ex) {
                NewMessage.Show (ex.ToString ());
            }

            ToolStripMenuItem LinkedNote =
                LayoutDetails.BuildMenuPropertyEdit (Loc.Instance.GetString("Linked Note: {0}"),
                                                     Notelink,
                                                     Loc.Instance.GetString ("Give a valid note's name to populate check list."),HandleNoteLinkNameChange );

            ToolStripButton RefreshButton = new ToolStripButton();
            RefreshButton.Text = Loc.Instance.GetString("Refresh");
            RefreshButton.Click+= HandleRefreshButtonClick;

            properties.DropDownItems.Add (new ToolStripSeparator());
            properties.DropDownItems.Add (LinkedNote);
            properties.DropDownItems.Add (RefreshButton);
        }
コード例 #37
0
 protected virtual void DoBuildChildren(LayoutPanelBase _Layout)
 {
     // children ned to modify this (basically it is their version of CreatePraent)
 }
コード例 #38
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);

            if (PrimaryDetails.Count == 0) {
                PrimaryDetails.Add ("beep");
            }
            if (SecondaryDetails.Count == 0) {
                SecondaryDetails.Add (Constants.BLANK);
            }

            ParentNotePanel.Height = this.CaptionLabel.Height;
            this.MaximizeButton.Visible = false;
            this.MinimizeButton.Visible = false;
            this.captionLabel.Visible = false;
             ActionButton = new ToolStripButton();
            ActionButton.Text = this.captionLabel.Text;
            ActionButton.Click+= HandleActionButtonClick;
            CaptionLabel.Items.Insert (0, ActionButton);

            ToolStripMenuItem PrimaryDetailLink =
                LayoutDetails.BuildMenuPropertyEdit (Loc.Instance.GetString("Primary: {0}"),
                                                     PrimaryDetails[0],
                                                     Loc.Instance.GetString ("Enter main action (Beep, evenwindows_alpha)."),HandlePrimaryChange );

            ToolStripMenuItem SecondaryDetailLink =
                LayoutDetails.BuildMenuPropertyEdit (Loc.Instance.GetString("Secondary: {0}"),
                                                     SecondaryDetails[0],
                                                     Loc.Instance.GetString ("Enter secondary action (Comma delimited list of notes for evenwindows_alpha)."),
                                                     HandleSecondaryChange );

            properties.DropDownItems.Add (new ToolStripSeparator());
            properties.DropDownItems.Add (PrimaryDetailLink);
            properties.DropDownItems.Add (SecondaryDetailLink);
        }