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

Last change on this file since 2277 was 2241, checked in by Matthäus Wander, 11 years ago

Removed further occurences of DisplayLevel and marked remainders in IPlugin interface as obsolete. This closes #122.

File size: 7.4 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 SelectedPluginChangedHandler OnSelectedPluginChanged;
53
54        public event ProjectTitleChangedHandler OnProjectTitleChanged;
55
56        public event OpenProjectFileHandler OnOpenProjectFile;
57
58        public event EditorSpecificPluginsChanged OnEditorSpecificPluginsChanged;
59
60        public void New()
61        {
62            if (OnSelectedPluginChanged != null)
63                OnSelectedPluginChanged(this, new PluginChangedEventArgs(this, "P2P Configuration", DisplayPluginMode.Normal));
64           
65            if (!P2PManager.IsConnected)
66            {
67                GuiLogMessage("Cannot display new job form, no connection to p2p network.", NotificationLevel.Warning);
68                return;
69            }
70
71            // Avoid switching to the add view, but allow using the new button later
72            if (!initialNewEventHandled)
73                initialNewEventHandled = true;
74            else
75                ((P2PEditorPresentation) Presentation).ShowJobCreation();
76        }
77
78        public void Open(string fileName)
79        {
80            GuiLogMessage("P2PEditor: Open(" + fileName + ")", NotificationLevel.Debug);
81        }
82
83        public void Save(string fileName)
84        {
85            GuiLogMessage("P2PEditor: Save(" + fileName + ")", NotificationLevel.Debug);
86        }
87
88        public void Add(Type type)
89        {
90            GuiLogMessage("P2PEditor: Add(" + type + ")", NotificationLevel.Debug);
91        }
92
93        public void AddEditorSpecific(EditorSpecificPluginInfo espi)
94        {
95            GuiLogMessage("P2PEditor: AddEditorSpecific()", NotificationLevel.Debug);
96        }
97
98        public void DeleteEditorSpecific(EditorSpecificPluginInfo espi)
99        {
100            GuiLogMessage("P2PEditor: DeleteEditorSpecific()", NotificationLevel.Debug);
101        }
102
103        public void Undo()
104        {
105            GuiLogMessage("P2PEditor: Undo()", NotificationLevel.Debug);
106        }
107
108        public void Redo()
109        {
110            GuiLogMessage("P2PEditor: Redo()", NotificationLevel.Debug);
111        }
112
113        public void Cut()
114        {
115            throw new NotImplementedException();
116        }
117
118        public void Copy()
119        {
120            throw new NotImplementedException();
121        }
122
123        public void Paste()
124        {
125            throw new NotImplementedException();
126        }
127
128        public void Remove()
129        {
130            throw new NotImplementedException();
131        }
132
133        public void Print()
134        {
135            throw new NotImplementedException();
136        }
137
138        public void ShowHelp()
139        {
140            ((P2PEditorPresentation) Presentation).ShowHelp();
141        }
142
143        public void ShowSelectedPluginDescription()
144        {
145            ((P2PEditorPresentation) Presentation).ShowHelp();
146        }
147
148        public bool CanUndo
149        {
150            get { return false; }
151        }
152
153        public bool CanRedo
154        {
155            get { return false; }
156        }
157
158        public bool CanCut
159        {
160            get { return false; }
161        }
162
163        public bool CanCopy
164        {
165            get { return false; }
166        }
167
168        public bool CanPaste
169        {
170            get { return false; }
171        }
172
173        public bool CanRemove
174        {
175            get { return false; }
176        }
177
178        public bool CanExecute
179        {
180            get { return false; }
181        }
182
183        public bool CanStop
184        {
185            get { return false; }
186        }
187
188        public bool HasChanges
189        {
190            get { return false; }
191        }
192
193        public bool CanPrint
194        {
195            get { return false; }
196        }
197
198        public List<EditorSpecificPluginInfo> EditorSpecificPlugins
199        {
200            get { return new List<EditorSpecificPluginInfo>(); }
201        }
202
203        public bool ReadOnly { get; set; }
204
205        public event StatusChangedEventHandler OnPluginStatusChanged;
206
207        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
208
209        public event PluginProgressChangedEventHandler OnPluginProgressChanged;
210
211        public ISettings Settings { get; private set; }
212
213        public UserControl Presentation { get; private set; }
214
215        public UserControl QuickWatchPresentation
216        {
217            get { throw new NotImplementedException(); }
218        }
219
220        public void PreExecution()
221        {
222        }
223
224        public void Execute()
225        {
226        }
227
228        public void PostExecution()
229        {
230        }
231
232        public void Pause()
233        {
234        }
235
236        public void Stop()
237        {
238        }
239
240        public void Initialize()
241        {
242            ((P2PEditorSettings)Settings).UpdateSettings();
243        }
244
245        public void Dispose()
246        {
247        }
248
249        public event PropertyChangedEventHandler PropertyChanged;
250
251        public PluginManager PluginManager { get; set; }
252
253        #endregion
254
255        public void GuiLogMessage(string message, NotificationLevel notificationLevel)
256        {
257            if (OnGuiLogNotificationOccured == null) return;
258
259            var args = new GuiLogEventArgs(message, this, notificationLevel) {Title = "-"};
260            OnGuiLogNotificationOccured(this, args);
261        }
262
263        public void SendOpenProjectFileEvent(string filename)
264        {
265            if (OnOpenProjectFile != null) OnOpenProjectFile(this, filename);
266        }
267
268        #region IEditor Members
269
270
271        public void Active()
272        {           
273        }
274
275        #endregion
276
277        #region IEditor Members
278
279
280        public event OpenTabHandler OnOpenTab;
281
282        #endregion
283    }
284}
Note: See TracBrowser for help on using the repository browser.