aboutsummaryrefslogtreecommitdiffstatsci
path: root/MonoDevelop.GOLib/src/CrowNodeExtension.cs
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2016-03-20 22:04:14 +0100
committerjpbruyere <jp.bruyere@hotmail.com>2016-03-20 22:04:14 +0100
commit8d7b17fdacb9dde5d5775115303b9e095a0631d1 (patch)
treeb526dd1c39ed7f7fa016078cf60d0c7208c2740c /MonoDevelop.GOLib/src/CrowNodeExtension.cs
parent356bfaaed4f46a727ae033f37f362b062c8c32d9 (diff)
try update monodevelop addin, workin progressmonodevelop
Diffstat (limited to 'MonoDevelop.GOLib/src/CrowNodeExtension.cs')
-rw-r--r--MonoDevelop.GOLib/src/CrowNodeExtension.cs135
1 files changed, 135 insertions, 0 deletions
diff --git a/MonoDevelop.GOLib/src/CrowNodeExtension.cs b/MonoDevelop.GOLib/src/CrowNodeExtension.cs
new file mode 100644
index 00000000..035f2353
--- /dev/null
+++ b/MonoDevelop.GOLib/src/CrowNodeExtension.cs
@@ -0,0 +1,135 @@
+//
+// ImageViewerNodeExtension.cs
+//
+// Author:
+// Mike Krüger <mkrueger@novell.com>
+//
+// Copyright (c) 2010 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using MonoDevelop.Projects;
+using MonoDevelop.Ide.Gui.Components;
+using MonoDevelop.Components;
+using MonoDevelop.Components.Commands;
+using MonoDevelop.Ide;
+using System.Linq;
+using MonoDevelop.DesignerSupport;
+
+namespace MonoDevelop.Crow
+{
+ enum Commands {
+ ShowGOLibViewer
+ }
+
+ class CrowNodeExtension : NodeBuilderExtension
+ {
+ public override Type CommandHandlerType {
+ get { return typeof(CrowCommandHandler); }
+ }
+ public override bool CanBuildNode (Type dataType)
+ {
+ return typeof(ProjectFile).IsAssignableFrom (dataType);
+ }
+ public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo)
+ {
+ ProjectFile pf = dataObject as ProjectFile;
+
+// string mimeType = DesktopService.GetMimeTypeForUri (pf.FilePath);
+// if (mimeType.StartsWith ("image/", StringComparison.CurrentCultureIgnoreCase)) {
+// Image i;
+// if (pf != null) {
+// i = Image.FromFile (pf.FilePath);
+// nodeInfo.Icon = i.Scale (16.0 / i.Width, 16.0 / i.Height);
+// }
+// }
+
+ base.BuildNode (treeBuilder, dataObject, nodeInfo);
+ }
+ }
+
+ class CrowCommandHandler: NodeCommandHandler //, IPropertyPadProvider
+ {
+ [CommandHandler (Commands.ShowGOLibViewer)]
+ protected void OnShowGOLibViewer ()
+ {
+
+ CrowView view = new CrowView ();
+
+ ProjectFile file = CurrentNode.DataItem as ProjectFile;
+
+ if (file != null)
+ view.Load (file.FilePath);
+
+
+ IdeApp.Workbench.OpenDocument (view, true);
+ //IdeApp.Workbench.Documents.Where (d => d.FileName == file.FilePath);
+ }
+
+// public override void ActivateItem ()
+// {
+// ProjectFile o = this.CurrentNode.DataItem as ProjectFile;
+//
+// Ide.Gui.Document[] doc = IdeApp.Workbench.Documents.Where (d => d.FileName == o.FilePath).ToArray();
+// var tmp = MonoDevelop.Ide.Gui.DisplayBindingService.GetFileViewers (o.FilePath, o.Project).ToList();
+//
+// OnShowGOLibViewer ();
+// }
+
+// #region IPropertyPadProvider implementation
+// public object GetActiveComponent ()
+// {
+// if (CurrentNodes.Length == 1)
+// return CurrentNode.DataItem;
+// else
+// return null;
+// }
+// public object GetProvider ()
+// {
+// return null;
+// }
+// public void OnEndEditing (object obj)
+// {
+// throw new NotImplementedException ();
+// }
+// public void OnChanged (object obj)
+// {
+//
+// }
+// #endregion
+ }
+
+// class GOLibItemPropertyProvider : IPropertyProvider
+// {
+// #region IPropertyProvider implementation
+// public object CreateProvider (object obj)
+// {
+// var projectFile = obj as ProjectFile;
+// return projectFile;
+// }
+//
+// public bool SupportsObject (object obj)
+// {
+// return obj is ProjectFile;
+// }
+// #endregion
+// }
+}
+