コード例 #1
0
        public PluginUI(PluginMain plugin, FDMenus menus,
                        FileActions fileActions, ProjectActions projectActions)
        {
            this.plugin = plugin;
            this.menus  = menus;
            this.Tag    = "Project";
            this.Text   = "Project Explorer";

            #region Build TreeView

            menu = new ProjectContextMenu(menus);
            menu.Rename.Click += new EventHandler(RenameNode);

            treeBar         = new TreeBar(menus, menu);
            treeBar.Dock    = DockStyle.Top;
            treeBar.Visible = false;

            tree                    = new ProjectTreeView();
            tree.Visible            = false;
            tree.Dock               = DockStyle.Fill;
            tree.ImageIndex         = 0;
            tree.ImageList          = Icons.ImageList;
            tree.LabelEdit          = true;
            tree.SelectedImageIndex = 0;
            tree.ShowRootLines      = false;
            tree.HideSelection      = false;
            tree.ContextMenu        = menu;
            tree.DoubleClick       += new EventHandler(tree_DoubleClick);
            tree.AfterLabelEdit    += new NodeLabelEditEventHandler(tree_AfterLabelEdit);
            tree.BeforeLabelEdit   += new NodeLabelEditEventHandler(tree_BeforeLabelEdit);
            tree.AfterSelect       += new TreeViewEventHandler(tree_AfterSelect);

            this.Controls.Add(tree);
            this.Controls.Add(treeBar);

            #endregion

            #region Instructions

            LinkLabel link = new LinkLabel();
            link.Text = "Create a new project\nor\nOpen an existing project";
            link.Links.Add(0, 20, "create");
            link.Links.Add(24, 24, "open");
            link.LinkClicked += new LinkLabelLinkClickedEventHandler(link_LinkClicked);
            link.TextAlign    = ContentAlignment.MiddleCenter;
            link.Dock         = DockStyle.Fill;
            link.ContextMenu  = new ContextMenu();
            this.Controls.Add(link);

            #endregion

            // we care about some of these events
            fileActions.FileCreated        += new FileNameHandler(NewFileCreated);
            fileActions.ProjectModified    += new ProjectModifiedHandler(ProjectModified);
            projectActions.ProjectModified += new ProjectModifiedHandler(ProjectModified);
        }
コード例 #2
0
        public BuildActions(IMainForm mainForm, FDMenus menus)
        {
            this.mainForm = mainForm;
            this.menus    = menus;

            // setup FDProcess helper class
            this.fdProcess = new FDProcessRunner(mainForm);

            // setup remoting service so FDBuild can use our in-memory services like FlexCompilerShell
            this.ipcName = Guid.NewGuid().ToString();
            SetupRemotingServer();
        }
コード例 #3
0
		public ProjectContextMenu(FDMenus menus)
		{
			this.menus = menus;

			AddNewClass = CreateButton("New &Class..",Icons.ActionScript.Img);
			AddNewXml = CreateButton("New &Xml File..",Icons.XmlFile.Img);
			AddNewFile = CreateButton("New &File..",Icons.AddFile.Img);
			AddNewFolder = CreateButton("New F&older",Icons.Folder.Img);
			AddLibraryAsset = CreateButton("Library &Asset..",Icons.ImageResource.Img);
			AddExistingFile = CreateButton("&Existing File..",Icons.HiddenFile.Img);
			Open = CreateButton("&Open",Icons.OpenFile.Img);
			Insert = CreateButton("&Insert Into Document",Icons.EditFile.Img);
			Execute = CreateButton("&Execute");
			Cut = CreateButton("Cu&t",Icons.Cut.Img);
			Copy = CreateButton("Cop&y");
			Paste = CreateButton("&Paste",Icons.Paste.Img);
			Delete = CreateButton("&Delete",Icons.Delete.Img);
			Rename = CreateButton("Rena&me");
			AlwaysCompile = new CommandBarCheckBox("Always &Compile");
			AddLibrary = new CommandBarCheckBox("Add to &Library");
			LibraryOptions = CreateButton("&Options...",Icons.Options.Img);
			Hide = new CommandBarCheckBox("&Hide File");
			ShowHidden = new CommandBarCheckBox(Icons.HiddenFile.Img,"&Show Hidden Items");
			NothingToDo = new CommandBarButton("Not a valid group");
			NothingToDo.IsEnabled = false;
			NoProjectOutput = new CommandBarButton("(Project output not built)");
			NoProjectOutput.IsEnabled = false;

			AddMenu = new CommandBarMenu("&Add");
			AddMenu.Items.Add(AddNewClass);
			AddMenu.Items.Add(AddNewXml);
			AddMenu.Items.Add(AddNewFile);
			AddMenu.Items.Add(AddNewFolder);
			AddMenu.Items.AddSeparator();
			AddMenu.Items.Add(AddLibraryAsset);
			AddMenu.Items.Add(AddExistingFile);
		}
コード例 #4
0
        public ProjectContextMenu(FDMenus menus)
        {
            this.menus = menus;

            AddNewClass               = CreateButton("New &Class..", Icons.ActionScript.Img);
            AddNewXml                 = CreateButton("New &Xml File..", Icons.XmlFile.Img);
            AddNewFile                = CreateButton("New &File..", Icons.AddFile.Img);
            AddNewFolder              = CreateButton("New F&older", Icons.Folder.Img);
            AddLibraryAsset           = CreateButton("Library &Asset..", Icons.ImageResource.Img);
            AddExistingFile           = CreateButton("&Existing File..", Icons.HiddenFile.Img);
            Open                      = CreateButton("&Open", Icons.OpenFile.Img);
            Insert                    = CreateButton("&Insert Into Document", Icons.EditFile.Img);
            Execute                   = CreateButton("&Execute");
            Cut                       = CreateButton("Cu&t", Icons.Cut.Img);
            Copy                      = CreateButton("Cop&y");
            Paste                     = CreateButton("&Paste", Icons.Paste.Img);
            Delete                    = CreateButton("&Delete", Icons.Delete.Img);
            Rename                    = CreateButton("Rena&me");
            AlwaysCompile             = new CommandBarCheckBox("Always &Compile");
            AddLibrary                = new CommandBarCheckBox("Add to &Library");
            LibraryOptions            = CreateButton("&Options...", Icons.Options.Img);
            Hide                      = new CommandBarCheckBox("&Hide File");
            ShowHidden                = new CommandBarCheckBox(Icons.HiddenFile.Img, "&Show Hidden Items");
            NothingToDo               = new CommandBarButton("Not a valid group");
            NothingToDo.IsEnabled     = false;
            NoProjectOutput           = new CommandBarButton("(Project output not built)");
            NoProjectOutput.IsEnabled = false;

            AddMenu = new CommandBarMenu("&Add");
            AddMenu.Items.Add(AddNewClass);
            AddMenu.Items.Add(AddNewXml);
            AddMenu.Items.Add(AddNewFile);
            AddMenu.Items.Add(AddNewFolder);
            AddMenu.Items.AddSeparator();
            AddMenu.Items.Add(AddLibraryAsset);
            AddMenu.Items.Add(AddExistingFile);
        }
コード例 #5
0
        public PluginUI(PluginMain plugin, FDMenus menus, FileActions fileActions, ProjectActions projectActions)
        {
            this.menus           = menus;
            this.AutoKeyHandling = true;
            this.Text            = TextHelper.GetString("Title.PluginPanel");

            #region Build TreeView and Toolbar

            menu = new ProjectContextMenu();
            menu.Rename.Click += RenameNode;

            treeBar = new TreeBar(menus, menu);

            tree                    = new ProjectTreeView();
            tree.BorderStyle        = BorderStyle.None;
            tree.Dock               = DockStyle.Fill;
            tree.ImageIndex         = 0;
            tree.ImageList          = Icons.ImageList;
            tree.LabelEdit          = true;
            tree.SelectedImageIndex = 0;
            tree.ShowRootLines      = false;
            tree.HideSelection      = false;
            tree.ContextMenuStrip   = menu;
            tree.AfterLabelEdit    += tree_AfterLabelEdit;
            tree.BeforeLabelEdit   += tree_BeforeLabelEdit;
            tree.BeforeSelect      += tree_BeforeSelect;
            tree.AfterSelect       += tree_AfterSelect;

            Panel panel = new Panel();
            panel.Dock = DockStyle.Fill;
            panel.Controls.Add(tree);
            panel.Controls.Add(treeBar);

            menu.ProjectTree = tree;
            ScrollBarEx.Attach(tree);

            #endregion

            #region Instructions

            help = new LinkLabel();
            string[] helpParts   = String.Format(TextHelper.GetString("Info.NoProjectsOpenLink"), "\n").Split('|');
            string[] helpActions = { "create", "open", "import" };
            string   helpText    = "";
            int[]    linkStart   = { 0, 0, 0 };
            int[]    linkLength  = { 0, 0, 0 };
            for (int i = 0; i < 3; i++)
            {
                if (helpParts.Length > i * 2)
                {
                    helpText     += helpParts[i * 2];
                    linkStart[i]  = helpText.Length;
                    helpText     += helpParts[i * 2 + 1];
                    linkLength[i] = helpParts[i * 2 + 1].Length;
                }
            }
            help.Text = helpText + helpParts[helpParts.Length - 1];
            for (int i = 0; i < 3; i++)
            {
                help.Links.Add(linkStart[i], linkLength[i], helpActions[i]);
            }
            help.LinkClicked += link_LinkClicked;
            help.Dock         = DockStyle.Fill;
            help.TextAlign    = ContentAlignment.MiddleCenter;
            help.ContextMenu  = new ContextMenu();

            #endregion

            this.Controls.Add(help);
            this.Controls.Add(panel);

            #region Events

            fileActions.FileCreated        += NewFileCreated;
            fileActions.ProjectModified    += ProjectModified;
            projectActions.ProjectModified += ProjectModified;

            #endregion
        }
コード例 #6
0
ファイル: PluginMain.cs プロジェクト: littlesome/LuaDevelop
        public void Initialize()
        {
            LoadSettings();
            pluginImage   = MainForm.FindImage("100");
            pluginDesc    = TextHelper.GetString("Info.Description");
            openFileQueue = new Queue <String>();

            Icons.Initialize(MainForm);
            EventManager.AddEventHandler(this, eventMask);

            #region Actions and Event Listeners

            menus = new FDMenus(MainForm);
            menus.ProjectMenu.ProjectItemsEnabled = false;
            menus.View.Click         += delegate { OpenPanel(); };
            menus.DebugProject.Click += delegate { DebugProject(); };

            menus.ProjectMenu.NewProject.Click   += delegate { NewProject(); };
            menus.ProjectMenu.OpenProject.Click  += delegate { OpenProject(); };
            menus.ProjectMenu.CloseProject.Click += delegate { CloseProject(false); };
            menus.ProjectMenu.OpenResource.Click += delegate { OpenResource(); };
            menus.ProjectMenu.DebugProject.Click += delegate { DebugProject(); };
            menus.ProjectMenu.Properties.Click   += delegate { OpenProjectProperties(); };
            menus.RecentProjects.ProjectSelected += delegate(string projectPath) { OpenProjectSilent(projectPath); };

            LuaDevelopActions = new LuaDevelopActions(MainForm);

            fileActions              = new FileActions(MainForm, LuaDevelopActions);
            fileActions.OpenFile    += OpenFile;
            fileActions.FileDeleted += FileDeleted;
            fileActions.FileMoved   += FileMoved;
            fileActions.FileCopied  += FilePasted;

            projectActions = new ProjectActions(pluginUI);

            pluginUI              = new PluginUI(this, menus, fileActions, projectActions);
            pluginUI.NewProject  += delegate { NewProject(); };
            pluginUI.OpenProject += delegate { OpenProject(); };
            pluginUI.Rename      += fileActions.Rename;
            pluginUI.TreeBar.ShowHidden.Click        += delegate { ToggleShowHidden(); };
            pluginUI.TreeBar.Synchronize.Click       += delegate { TreeSyncToCurrentFile(); };
            pluginUI.TreeBar.ProjectProperties.Click += delegate { OpenProjectProperties(); };
            pluginUI.TreeBar.RefreshSelected.Click   += delegate { TreeRefreshSelectedNode(); };

            pluginUI.Menu.Open.Click            += delegate { TreeOpenItems(); };
            pluginUI.Menu.Execute.Click         += delegate { TreeExecuteItems(); };
            pluginUI.Menu.Browse.Click          += delegate { TreeBrowseItem(); };
            pluginUI.Menu.Cut.Click             += delegate { TreeCutItems(); };
            pluginUI.Menu.Copy.Click            += delegate { TreeCopyItems(); };
            pluginUI.Menu.Paste.Click           += delegate { TreePasteItems(); };
            pluginUI.Menu.Delete.Click          += delegate { TreeDeleteItems(); };
            pluginUI.Menu.HideItem.Click        += delegate { TreeHideItems(); };
            pluginUI.Menu.ShowHidden.Click      += delegate { ToggleShowHidden(); };
            pluginUI.Menu.AddFileFromTemplate   += TreeAddFileFromTemplate;
            pluginUI.Menu.AddNewFolder.Click    += delegate { TreeAddFolder(); };
            pluginUI.Menu.AddExistingFile.Click += delegate { TreeAddExistingFile(); };
            pluginUI.Menu.DebugProject.Click    += delegate { DebugProject(); };
            pluginUI.Menu.CloseProject.Click    += delegate { CloseProject(false); };
            pluginUI.Menu.Properties.Click      += delegate { OpenProjectProperties(); };
            pluginUI.Menu.ShellMenu.Click       += delegate { TreeShowShellMenu(); };
            pluginUI.Menu.CommandPrompt.Click   += delegate { TreeShowCommandPrompt(); };
            pluginUI.Menu.FindAndReplace.Click  += delegate { FindAndReplace(); };
            pluginUI.Menu.FindInFiles.Click     += delegate { FindInFiles(); };
            pluginUI.Menu.Opening += new CancelEventHandler(this.MenuOpening);

            Tree.MovePath    += fileActions.Move;
            Tree.CopyPath    += fileActions.Copy;
            Tree.DoubleClick += delegate { TreeDoubleClick(); };

            #endregion

            pluginPanel = MainForm.CreateDockablePanel(pluginUI, Guid, Icons.Project.Img, DockState.DockRight);
        }
コード例 #7
0
        public void Initialize()
        {
            MainFormRef = MainForm;             // Mika: added

            Icons.Initialize(MainForm);
            Settings.Initialize(MainForm);
            PluginData.Load();

            showProjectClasspaths = Settings.ShowProjectClasspaths;
            showGlobalClasspaths  = Settings.ShowGlobalClasspaths;

            MainForm.IgnoredKeys.Add(Keys.F5);
            MainForm.IgnoredKeys.Add(Keys.F8);

            #region Actions and Event Listeners

            menus                                 = new FDMenus(MainForm);
            menus.View.Click                     += new EventHandler(OpenPanel);
            menus.GlobalClasspaths.Click         += new EventHandler(OpenGlobalClasspaths);
            menus.ProjectMenu.NewProject.Click   += new EventHandler(NewProject);
            menus.ProjectMenu.OpenProject.Click  += new EventHandler(OpenProject);
            menus.ProjectMenu.CloseProject.Click += new EventHandler(CloseProject);
            menus.ProjectMenu.TestMovie.Click    += new EventHandler(TestMovie);
            menus.ProjectMenu.BuildProject.Click += new EventHandler(BuildProject);
            menus.ProjectMenu.Properties.Click   += new EventHandler(OpenProjectProperties);
            menus.RecentComboBox.RequestProject  += new ProjectRequestHandler(GetProject);
            menus.RecentComboBox.OpenProject     += new ProjectOpenHandler(OpenProjectSilent);

            buildActions = new BuildActions(MainForm);
            buildActions.BuildComplete     += new BuildCompleteHandler(BuildComplete);
            buildActions.ClasspathsChanged += new EventHandler(ProjectClasspathsChanged);

            flashDevelopActions = new FlashDevelopActions(MainForm);

            fileActions              = new FileActions(pluginUI);
            fileActions.OpenFile    += new FileNameHandler(OpenFile);
            fileActions.FileDeleted += new FileNameHandler(FileDeleted);
            fileActions.FileMoved   += new FileMovedHandler(FileMoved);

            projectActions = new ProjectActions(pluginUI);

            // create our UI surface and a docking panel for it
            pluginUI                             = new PluginUI(this, menus, fileActions, projectActions);
            pluginUI.NewProject                 += new EventHandler(NewProject);
            pluginUI.OpenProject                += new EventHandler(OpenProject);
            pluginUI.Rename                     += new RenameEventHandler(fileActions.Rename);
            pluginUI.Tree.MovePath              += new DragPathEventHandler(fileActions.Move);
            pluginUI.Tree.CopyPath              += new DragPathEventHandler(fileActions.Copy);
            pluginUI.Menu.Open.Click            += new EventHandler(TreeOpenItems);
            pluginUI.Menu.Execute.Click         += new EventHandler(TreeExecuteItems);
            pluginUI.Menu.Insert.Click          += new EventHandler(TreeInsertItem);
            pluginUI.Menu.AddLibrary.Click      += new EventHandler(TreeAddLibraryItems);
            pluginUI.Menu.AlwaysCompile.Click   += new EventHandler(TreeAlwaysCompileItems);
            pluginUI.Menu.Cut.Click             += new EventHandler(TreeCutItems);
            pluginUI.Menu.Copy.Click            += new EventHandler(TreeCopyItems);
            pluginUI.Menu.Paste.Click           += new EventHandler(TreePasteItems);
            pluginUI.Menu.Delete.Click          += new EventHandler(TreeDeleteItems);
            pluginUI.Menu.LibraryOptions.Click  += new EventHandler(TreeLibraryOptions);
            pluginUI.Menu.Hide.Click            += new EventHandler(TreeHideItems);
            pluginUI.Menu.ShowHidden.Click      += new EventHandler(ToggleShowHidden);
            pluginUI.Menu.AddNewClass.Click     += new EventHandler(TreeAddNewClass);
            pluginUI.Menu.AddNewXml.Click       += new EventHandler(TreeAddXml);
            pluginUI.Menu.AddNewFile.Click      += new EventHandler(TreeAddFile);
            pluginUI.Menu.AddNewFolder.Click    += new EventHandler(TreeAddFolder);
            pluginUI.Menu.AddLibraryAsset.Click += new EventHandler(TreeAddAsset);
            pluginUI.Menu.AddExistingFile.Click += new EventHandler(TreeAddExistingFile);
            pluginUI.TreeBar.Refresh.Click      += new EventHandler(TreeRefreshNode);

            menus.RecentComboBox.Rebuild();

            #endregion

            pluginPanel = MainForm.CreateDockingPanel(pluginUI, Guid,
                                                      Icons.Project.Img, DockState.DockRight);

            // try to open the last opened project
            string lastProject = Settings.LastProject;

            if (Settings.LastProject != "" && File.Exists(Settings.LastProject))
            {
                OpenProjectSilent(lastProject);
                // if we open the last project right away, we need to give ASCompletion
                // some time before we can trust that it received our classpaths ok
                startupTimer          = new Timer();
                startupTimer.Tick    += new EventHandler(ProjectClasspathsChanged);
                startupTimer.Interval = 1000;
                startupTimer.Start();
            }
            else
            {
                Project = null;
            }

            try
            {
                ProjectIcon.Associate();                 // make sure .fdp points to this instance of FD
            }
            catch (UnauthorizedAccessException)
            {
                // silent
            }
            catch (Exception)
            {
                // silent?
            }
        }