source: trunk/CrypPlugins/P2PEditor/P2PEditor.cs @ 2182

Last change on this file since 2182 was 2182, checked in by Sven Rech, 11 years ago

ribbon stuff

File size: 7.5 KB
Line 
1/*
2   Copyright 2010 Paul Lelgemann, University of Duisburg-Essen
3
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7
8       http://www.apache.org/licenses/LICENSE-2.0
9
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15*/
16
17using System;
18using System.Collections.Generic;
19using System.ComponentModel;
20using System.Windows.Controls;
21using Cryptool.Core;
22using Cryptool.P2P;
23using Cryptool.P2PEditor.Distributed;
24using Cryptool.P2PEditor.GUI;
25using Cryptool.PluginBase;
26using Cryptool.PluginBase.Editor;
27
28namespace Cryptool.P2PEditor
29{
30    [EditorInfo("p2p")]
31    [Author("Paul Lelgemann", "lelgemann@cryptool.org", "Uni Duisburg-Essen", "http://www.uni-due.de")]
32    [PluginInfo("Cryptool.P2PEditor.Resources.Attributes", false, "P2P Interface",
33        "Control interface for the integrated P2P network.", null,
34        "P2PEditor/images/icon.png")]
35    public class P2PEditor : IEditor
36    {
37        private readonly JobListManager jobListManager;
38
39        private bool initialNewEventHandled;
40
41        public P2PEditor()
42        {
43            jobListManager = new JobListManager(this);
44            initialNewEventHandled = false;
45
46            Presentation = new P2PEditorPresentation(this, jobListManager);
47            Settings = new P2PEditorSettings(this);
48        }
49
50        #region IEditor Members
51
52        public event ChangeDisplayLevelHandler OnChangeDisplayLevel;
53
54        public event SelectedPluginChangedHandler OnSelectedPluginChanged;
55
56        public event ProjectTitleChangedHandler OnProjectTitleChanged;
57
58        public event OpenProjectFileHandler OnOpenProjectFile;
59
60        public event EditorSpecificPluginsChanged OnEditorSpecificPluginsChanged;
61
62        public void New()
63        {
64            if (OnSelectedPluginChanged != null)
65                OnSelectedPluginChanged(this, new PluginChangedEventArgs(this, "P2P Configuration", DisplayPluginMode.Normal));
66           
67            if (!P2PManager.IsConnected)
68            {
69                GuiLogMessage("Cannot display new job form, no connection to p2p network.", NotificationLevel.Warning);
70                return;
71            }
72
73            // Avoid switching to the add view, but allow using the new button later
74            if (!initialNewEventHandled)
75                initialNewEventHandled = true;
76            else
77                ((P2PEditorPresentation) Presentation).ShowJobCreation();
78        }
79
80        public void Open(string fileName)
81        {
82            GuiLogMessage("P2PEditor: Open(" + fileName + ")", NotificationLevel.Debug);
83        }
84
85        public void Save(string fileName)
86        {
87            GuiLogMessage("P2PEditor: Save(" + fileName + ")", NotificationLevel.Debug);
88        }
89
90        public void Add(Type type)
91        {
92            GuiLogMessage("P2PEditor: Add(" + type + ")", NotificationLevel.Debug);
93        }
94
95        public void AddEditorSpecific(EditorSpecificPluginInfo espi)
96        {
97            GuiLogMessage("P2PEditor: AddEditorSpecific()", NotificationLevel.Debug);
98        }
99
100        public void DeleteEditorSpecific(EditorSpecificPluginInfo espi)
101        {
102            GuiLogMessage("P2PEditor: DeleteEditorSpecific()", NotificationLevel.Debug);
103        }
104
105        public void Undo()
106        {
107            GuiLogMessage("P2PEditor: Undo()", NotificationLevel.Debug);
108        }
109
110        public void Redo()
111        {
112            GuiLogMessage("P2PEditor: Redo()", NotificationLevel.Debug);
113        }
114
115        public void Cut()
116        {
117            throw new NotImplementedException();
118        }
119
120        public void Copy()
121        {
122            throw new NotImplementedException();
123        }
124
125        public void Paste()
126        {
127            throw new NotImplementedException();
128        }
129
130        public void Remove()
131        {
132            throw new NotImplementedException();
133        }
134
135        public void Print()
136        {
137            throw new NotImplementedException();
138        }
139
140        public void ShowHelp()
141        {
142            ((P2PEditorPresentation) Presentation).ShowHelp();
143        }
144
145        public void ShowSelectedPluginDescription()
146        {
147            ((P2PEditorPresentation) Presentation).ShowHelp();
148        }
149
150        public bool CanUndo
151        {
152            get { return false; }
153        }
154
155        public bool CanRedo
156        {
157            get { return false; }
158        }
159
160        public bool CanCut
161        {
162            get { return false; }
163        }
164
165        public bool CanCopy
166        {
167            get { return false; }
168        }
169
170        public bool CanPaste
171        {
172            get { return false; }
173        }
174
175        public bool CanRemove
176        {
177            get { return false; }
178        }
179
180        public bool CanExecute
181        {
182            get { return false; }
183        }
184
185        public bool CanStop
186        {
187            get { return false; }
188        }
189
190        public bool HasChanges
191        {
192            get { return false; }
193        }
194
195        public bool CanPrint
196        {
197            get { return false; }
198        }
199
200        public DisplayLevel DisplayLevel { get; set; }
201
202        public List<EditorSpecificPluginInfo> EditorSpecificPlugins
203        {
204            get { return new List<EditorSpecificPluginInfo>(); }
205        }
206
207        public bool ReadOnly { get; set; }
208
209        public event StatusChangedEventHandler OnPluginStatusChanged;
210
211        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
212
213        public event PluginProgressChangedEventHandler OnPluginProgressChanged;
214
215        public ISettings Settings { get; private set; }
216
217        public UserControl Presentation { get; private set; }
218
219        public UserControl QuickWatchPresentation
220        {
221            get { throw new NotImplementedException(); }
222        }
223
224        public void PreExecution()
225        {
226        }
227
228        public void Execute()
229        {
230        }
231
232        public void PostExecution()
233        {
234        }
235
236        public void Pause()
237        {
238        }
239
240        public void Stop()
241        {
242        }
243
244        public void Initialize()
245        {
246            ((P2PEditorSettings)Settings).UpdateSettings();
247        }
248
249        public void Dispose()
250        {
251        }
252
253        public event PropertyChangedEventHandler PropertyChanged;
254
255        public PluginManager PluginManager { get; set; }
256
257        #endregion
258
259        public void GuiLogMessage(string message, NotificationLevel notificationLevel)
260        {
261            if (OnGuiLogNotificationOccured == null) return;
262
263            var args = new GuiLogEventArgs(message, this, notificationLevel) {Title = "-"};
264            OnGuiLogNotificationOccured(this, args);
265        }
266
267        public void SendOpenProjectFileEvent(string filename)
268        {
269            if (OnOpenProjectFile != null) OnOpenProjectFile(this, filename);
270        }
271
272        #region IEditor Members
273
274
275        public void Active()
276        {           
277        }
278
279        #endregion
280
281        #region IEditor Members
282
283
284        public event OpenTabHandler OnOpenTab;
285
286        #endregion
287    }
288}
Note: See TracBrowser for help on using the repository browser.