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); }
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(); }
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); }
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); }
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 }
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); }
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? } }