RefactoringRope/RefactoringClient.py

Sat, 23 Sep 2017 14:17:49 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 23 Sep 2017 14:17:49 +0200
branch
server_client_variant
changeset 182
f7f2834dc8d9
parent 181
3e3d6de2f0ca
child 183
bac69c80d5f4
permissions
-rw-r--r--

Implemented the distributed "Imports" refactoring methods.

161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the refactoring client interface to rope.
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import sys
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import os
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 sys.path.insert(0, os.path.dirname(__file__))
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 if sys.version_info[0] >= 3:
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
17 rope_path = os.path.join(os.path.dirname(__file__), 'rope_py3')
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 else:
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
19 rope_path = os.path.join(os.path.dirname(__file__), 'rope_py2')
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
20 str = unicode # __IGNORE_WARNING__
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
21 sys.path.insert(0, rope_path)
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
23 import rope
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 import rope.base.project
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
25 import rope.base.libutils
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
27 from JsonClient import JsonClient
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
28 from ProgressHandle import ProgressHandle
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
30
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
31 class RefactoringClient(JsonClient):
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 Class implementing the refactoring client interface to rope.
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 def __init__(self, host, port, projectPath):
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Constructor
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param host ip address the background service is listening
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @type str
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @param port port of the background service
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @type int
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 @param projectPath path to the project
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @type str
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
46 super(RefactoringClient, self).__init__(host, port)
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
48 self.__methodMapping = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
49 "AbortAction": self.__abortAction,
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
50 "CloseProject": self.__closeProject,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
51 "Validate": self.__validate,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
52 "QueryReferences": self.__queryReferences,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
53 "QueryDefinition": self.__queryDefinition,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
54 "QueryImplementations": self.__queryImplementations,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
55 "GetConfig": self.__getConfig,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
56 "ConfigChanged": self.__configChanged,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
57 "PerformSoa": self.__performSOA,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
58 "ReportChanged": self.__reportChanged,
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
59 "History": self.__processHistory,
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
60 "PreviewChanges": self.__previewChanges,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
61 "ApplyChanges": self.__applyChanges,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
62 "ClearChanges": self.__clearChanges,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
63 "CalculateRenameChanges": self.__calculateRenameChanges,
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
64 "CalculateChangeOccurrencesChanges":
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
65 self.__calculateChangeOccurrencesChanges,
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
66 "CalculateExtractChanges": self.__calculateExtractChanges,
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
67 "RequestInlineType": self.__requestInlineType,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
68 "CalculateInlineChanges": self.__calculateInlineChanges,
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
69 "RequestMoveType": self.__requestMoveType,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
70 "CalculateMoveChanges": self.__calculateMoveChanges,
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
71 "RequestUseFunction": self.__requestUseFunction,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
72 "CalculateUseFunctionChanges": self.__calculateUseFunctionChanges,
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
73 "CalculateIntroduceFactoryChanges":
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
74 self.__calculateIntroduceFactoryChanges,
181
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
75 "CalculateIntroduceParameterChanges":
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
76 self.__calculateIntroduceParameterChanges,
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
77 "CalculateImportsChanges": self.__calculateImportsChanges,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
78 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
79
162
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
80 from FileSystemCommands import RefactoringClientFileSystemCommands
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
81 self.__fsCommands = RefactoringClientFileSystemCommands(self)
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
82
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.__projectpath = projectPath
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.__project = rope.base.project.Project(
162
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
85 self.__projectpath, fscommands=self.__fsCommands)
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 163
diff changeset
86
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 163
diff changeset
87 self.__progressHandle = None
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
88
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
89 self.__changes = {}
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
90 # dict storing the retrieved changes for various refactorings
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
92 def handleCall(self, method, params):
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
94 Public method to handle a method call from the server.
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
96 @param method requested method name
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
97 @type str
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
98 @param params dictionary with method specific parameters
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
99 @type dict
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
100 """
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
101 ## if "filename" in params and sys.version_info[0] == 2:
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
102 ## params["filename"] = params["filename"].encode(
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
103 ## sys.getfilesystemencoding())
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
105 self.__methodMapping[method](params)
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
106
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
107 def __handleRopeError(self, err):
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
108 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
109 Private method to process a rope error.
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
110
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
111 @param err rope exception object
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
112 @type Exception
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
113 @return dictionary containing the error information
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
114 @rtype dict
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
115 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
116 ropeError = str(type(err)).split()[-1]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
117 ropeError = ropeError[1:-2].split('.')[-1]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
118 errorDict = {
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
119 "Error": ropeError,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
120 "ErrorString": str(err),
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
121 }
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
122 if ropeError == 'ModuleSyntaxError':
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
123 errorDict["ErrorFile"] = err.filename
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
124 errorDict["ErrorLine"] = err.lineno
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
125
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
126 return errorDict
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
127
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
128 def __abortAction(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
129 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
130 Private method to abort the current action.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
131
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
132 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
133 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
134 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
135 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
136 if self.__progressHandle is not None and \
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
137 not self.__progressHandle.is_stopped():
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
138 self.__progressHandle.stop()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
139
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
140 def __validate(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
141 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
142 Private slot to validate the project.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
143
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
144 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
145 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
146 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
147 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
148 self.__project.validate(self.__project.root)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
149
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
150 def __closeProject(self, params):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
151 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
152 Private slot to validate the project.
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
153
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
154 @param params dictionary containing the method parameters sent by
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
155 the server
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
156 @type dict
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
157 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
158 self.__project.close()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
159
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
160 def __getConfig(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
161 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
162 Private method to send some configuration data to the server.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
163
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
164 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
165 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
166 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
167 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
168 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
169 "RopeFolderName": self.__project.ropefolder.real_path,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
170 "DefaultConfig": self.__project._default_config(),
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
171 "RopeHelpFile": os.path.join(
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
172 rope_path, "rope", "docs", "overview.txt"),
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
173 "RopeInfo": rope.INFO,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
174 "RopeVersion": rope.VERSION,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
175 "RopeCopyright": rope.COPYRIGHT,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
176 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
177
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
178 self.sendJson("Config", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
179
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
180 def __configChanged(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
181 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
182 Private method to handle a change of the configuration file.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
183
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
184 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
185 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
186 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
187 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
188 self.__project.close()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
189 self.__project = rope.base.project.Project(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
190 self.__projectpath, fscommands=self.__fsCommands)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
191
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
192 def __queryReferences(self, params):
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
193 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
194 Private method to handle the Find References action.
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
195
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
196 @param params dictionary containing the method parameters sent by
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
197 the server
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
198 @type dict
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
199 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
200 title = params["Title"]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
201 filename = params["FileName"]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
202 offset = params["Offset"]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
203
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
204 errorDict = {}
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
205 occurrences = []
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
206
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
207 import rope.contrib.findit
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
208 resource = rope.base.libutils.path_to_resource(
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
209 self.__project, filename)
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
210 self.__progressHandle = ProgressHandle(self, title, True)
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
211 try:
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
212 occurrences = rope.contrib.findit.find_occurrences(
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
213 self.__project, resource, offset,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
214 unsure=True, in_hierarchy=True,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
215 task_handle=self.__progressHandle)
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
216 except Exception as err:
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
217 errorDict = self.__handleRopeError(err)
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
218 self.__progressHandle.reset()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
219 self.__progressHandle = None
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
220
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
221 result = {
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
222 "Title": title,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
223 "EntriesCount": len(occurrences),
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
224 "Entries": [
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
225 [occurrence.resource.real_path, occurrence.lineno,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
226 occurrence.unsure] for occurrence in occurrences
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
227 ],
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
228 }
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
229 result.update(errorDict)
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
230
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
231 self.sendJson("QueryReferencesResult", result)
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
232
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
233 def __queryDefinition(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
234 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
235 Private method to handle the Find Definition action.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
236
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
237 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
238 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
239 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
240 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
241 title = params["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
242 filename = params["FileName"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
243 offset = params["Offset"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
244 source = params["Source"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
245 subcommand = params["Subcommand"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
246
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
247 errorDict = {}
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
248 location = None
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
249
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
250 import rope.contrib.findit
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
251 resource = rope.base.libutils.path_to_resource(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
252 self.__project, filename)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
253 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
254 location = rope.contrib.findit.find_definition(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
255 self.__project, source, offset, resource)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
256 except Exception as err:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
257 errorDict = self.__handleRopeError(err)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
258
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
259 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
260 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
261 "Subcommand": subcommand,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
262 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
263 if location is not None:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
264 result["Location"] = [
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
265 location.resource.real_path, location.lineno
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
266 ]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
267 result.update(errorDict)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
268
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
269 self.sendJson("QueryDefinitionResult", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
270
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
271 def __queryImplementations(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
272 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
273 Private method to handle the Find Implementations action.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
274
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
275 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
276 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
277 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
278 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
279 title = params["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
280 filename = params["FileName"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
281 offset = params["Offset"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
282
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
283 errorDict = {}
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
284 occurrences = []
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
285
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
286 import rope.contrib.findit
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
287 resource = rope.base.libutils.path_to_resource(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
288 self.__project, filename)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
289 self.__progressHandle = ProgressHandle(self, title, True)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
290 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
291 occurrences = rope.contrib.findit.find_implementations(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
292 self.__project, resource, offset,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
293 task_handle=self.__progressHandle)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
294 except Exception as err:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
295 errorDict = self.__handleRopeError(err)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
296 self.__progressHandle.reset()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
297 self.__progressHandle = None
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
298
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
299 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
300 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
301 "EntriesCount": len(occurrences),
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
302 "Entries": [
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
303 [occurrence.resource.real_path, occurrence.lineno,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
304 occurrence.unsure] for occurrence in occurrences
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
305 ],
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
306 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
307 result.update(errorDict)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
308
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
309 self.sendJson("QueryImplementationsResult", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
310
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
311 def __performSOA(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
312 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
313 Private method to perform SOA on all modules.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
314
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
315 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
316 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
317 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
318 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
319 title = params["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
320
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
321 errorDict = {}
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
322
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
323 self.__progressHandle = ProgressHandle(self, title, True)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
324 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
325 rope.base.libutils.analyze_modules(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
326 self.__project, task_handle=self.__progressHandle)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
327 except Exception as err:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
328 errorDict = self.__handleRopeError(err)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
329 self.__progressHandle.reset()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
330 self.__progressHandle = None
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
331
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
332 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
333 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
334 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
335 result.update(errorDict)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
336
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
337 self.sendJson("SoaFinished", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
338
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
339 def __reportChanged(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
340 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
341 Private method to register some changed sources.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
342
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
343 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
344 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
345 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
346 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
347 filename = params["FileName"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
348 oldSource = params["OldSource"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
349
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
350 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
351 rope.base.libutils.report_change(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
352 self.__project, filename, oldSource)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
353 except Exception:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
354 # simply ignore it
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
355 pass
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
356
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
357 def __processHistory(self, params):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
358 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
359 Private method to process the various history related requests.
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
360
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
361 @param params dictionary containing the method parameters sent by
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
362 the server
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
363 @type dict
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
364 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
365 subcommand = params["Subcommand"]
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
366 if subcommand == "Get":
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
367 changes = {}
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
368 if params["Filename"]:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
369 # file history
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
370 resource = rope.base.libutils.path_to_resource(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
371 self.__project, params["Filename"])
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
372 undoList = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
373 for change in reversed(self.__project.history.undo_list):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
374 if resource in change.get_changed_resources():
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
375 undoList.append(change)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
376 redoList = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
377 for change in self.__project.history.redo_list:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
378 if resource in change.get_changed_resources():
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
379 redoList.append(change)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
380 else:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
381 # project history
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
382 undoList = list(reversed(self.__project.history.undo_list))
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
383 redoList = self.__project.history.redo_list
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
384
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
385 result = {"Subcommand": "Histories"}
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
386 result["Undo"] = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
387 for change in undoList:
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
388 changes[id(change)] = change
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
389 result["Undo"].append([str(change), id(change)])
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
390 result["Redo"] = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
391 for change in redoList:
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
392 changes[id(change)] = change
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
393 result["Redo"].append([str(change), id(change)])
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
394
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
395 self.__changes["History"] = changes
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
396
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
397 self.sendJson("HistoryResult", result)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
398
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
399 elif subcommand == "GetChange":
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
400 result = {
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
401 "Subcommand": "ChangeDescription",
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
402 "Description":
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
403 self.__changes["History"][params["Id"]].get_description()
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
404 }
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
405
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
406 self.sendJson("HistoryResult", result)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
407
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
408 elif subcommand in ["Undo", "Redo"]:
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
409 change = self.__changes["History"][params["Id"]]
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
410 self.__progressHandle = ProgressHandle(self, change.description,
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
411 False)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
412 if subcommand == "Undo":
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
413 self.__project.history.undo(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
414 change, task_handle=self.__progressHandle)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
415 else:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
416 self.__project.history.redo(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
417 change, task_handle=self.__progressHandle)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
418 self.__progressHandle.reset()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
419 self.__progressHandle = None
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
420
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
421 result = {
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
422 "Subcommand": subcommand,
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
423 "ChangedFiles": [
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
424 res.real_path for res in change.get_changed_resources()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
425 ],
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
426 }
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
427
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
428 self.sendJson("HistoryResult", result)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
429
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
430 elif subcommand == "Clear":
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
431 self.__project.history.clear()
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
432
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
433 elif subcommand == "ClearChanges":
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
434 try:
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
435 del self.__changes["History"]
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
436 except KeyError:
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
437 pass
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
438
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
439 def __clearChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
440 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
441 Private method to clear the changes cache of a given change group.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
442
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
443 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
444 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
445 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
446 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
447 try:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
448 del self.__changes[params["ChangeGroup"]]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
449 except KeyError:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
450 pass
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
451
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
452 def __applyChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
453 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
454 Private method to apply the changes of a given change group.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
455
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
456 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
457 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
458 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
459 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
460 errorDict = {}
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
461
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
462 self.__progressHandle = ProgressHandle(self, params["Title"], False)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
463 try:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
464 changes = self.__changes[params["ChangeGroup"]]
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
465 self.__project.do(changes, self.__progressHandle)
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
466 except Exception as err:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
467 errorDict = self.__handleRopeError(err)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
468 self.__progressHandle.reset()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
469 self.__progressHandle = None
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
470
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
471 result = {
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
472 "Subcommand": "ChangesApplied",
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
473 "ChangeGroup": params["ChangeGroup"],
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
474 "Title": params["Title"],
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
475 "ChangedFiles": [
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
476 res.real_path for res in changes.get_changed_resources()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
477 ],
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
478 }
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
479 result.update(errorDict)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
480
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
481 self.sendJson("Changes", result)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
482
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
483 def __previewChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
484 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
485 Private method to determine the changes data for a preview.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
486
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
487 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
488 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
489 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
490 """
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
491 try:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
492 changes = self.__changes[params["ChangeGroup"]]
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
493 description = changes.description
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
494 except KeyError:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
495 changes = None
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
496 description = ""
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
497
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
498 changesData = []
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
499 if changes is not None:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
500 for change in changes.changes:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
501 changeTitle = str(change)
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
502 try:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
503 changeText = change.get_description()
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
504 except AttributeError:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
505 changeText = None
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
506 changesData.append([changeTitle, changeText])
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
507
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
508 result = {
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
509 "Subcommand": "PreviewChanges",
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
510 "ChangeGroup": params["ChangeGroup"],
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
511 "Description": description,
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
512 "Changes": changesData,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
513 }
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
514
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
515 self.sendJson("Changes", result)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
516
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
517 def __calculateRenameChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
518 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
519 Private method to calculate the rename changes based on the parameters
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
520 sent by the server.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
521
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
522 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
523 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
524 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
525 """
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
526 changeGroup = params["ChangeGroup"]
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
527 title = params["Title"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
528 filename = params["FileName"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
529 offset = params["Offset"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
530 isLocal = params["LocalRename"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
531 newName = params["NewName"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
532 renameHierarchy = params["RenameHierarchy"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
533 renameInStrings = params["RenameInStrings"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
534
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
535 errorDict = {}
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
536 changes = []
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
537 result = {
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
538 "ChangeGroup": changeGroup,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
539 "Title": title,
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
540 }
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
541
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
542 import rope.refactor.rename
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
543 resource = rope.base.libutils.path_to_resource(
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
544 self.__project, filename)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
545
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
546 if isLocal:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
547 resources = [resource]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
548 else:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
549 resources = None
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
550
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
551 self.__progressHandle = ProgressHandle(self, title, True)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
552 try:
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
553 renamer = rope.refactor.rename.Rename(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
554 self.__project, resource, offset)
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
555 changes = renamer.get_changes(
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
556 newName,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
557 resources=resources,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
558 in_hierarchy=renameHierarchy,
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
559 unsure=lambda o: self.__confirmUnsure(o, changeGroup),
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
560 docs=renameInStrings,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
561 task_handle=self.__progressHandle)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
562 except Exception as err:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
563 errorDict = self.__handleRopeError(err)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
564 self.__progressHandle.reset()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
565 self.__progressHandle = None
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
566
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
567 self.__changes[changeGroup] = changes
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
568
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
569 result["Subcommand"] = "ChangesCalculated"
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
570 result.update(errorDict)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
571
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
572 self.sendJson("Changes", result)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
573
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
574 def __confirmUnsure(self, occurrence, changeGroup):
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
575 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
576 Private method to confirm unsure occurrences.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
577
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
578 @parameter occurrence reference to the occurrence object
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
579 @type rope.refactor.occurrences.Occurrence
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
580 @param changeGroup name of the change group
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
581 @type str
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
582 @return flag indicating an occurrence
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
583 @rtype bool
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
584 """
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
585 filename = occurrence.resource.real_path
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
586 start, end = occurrence.get_primary_range()
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
587
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
588 self.sendJson("Changes", {
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
589 "Subcommand": "ConfirmUnsure",
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
590 "ChangeGroup": changeGroup,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
591 "FileName": filename,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
592 "StartOffset": start,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
593 "EndOffset": end,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
594 })
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
595
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
596 answer = self.poll(waitMethod="ConfirmUnsure")
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
597
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
598 return answer["Answer"]
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
599
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
600 def __calculateChangeOccurrencesChanges(self, params):
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
601 """
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
602 Private method to calculate the 'Change Occurrences' changes based on
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
603 the parameters sent by the server.
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
604
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
605 @param params dictionary containing the method parameters sent by
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
606 the server
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
607 @type dict
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
608 """
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
609 changeGroup = params["ChangeGroup"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
610 title = params["Title"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
611 filename = params["FileName"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
612 offset = params["Offset"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
613 newName = params["NewName"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
614 onlyCalls = params["OnlyCalls"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
615 reads = params["Reads"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
616 writes = params["Writes"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
617
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
618 errorDict = {}
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
619 changes = []
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
620 result = {
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
621 "ChangeGroup": changeGroup,
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
622 "Title": title,
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
623 }
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
624
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
625 import rope.refactor.rename
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
626 resource = rope.base.libutils.path_to_resource(
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
627 self.__project, filename)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
628 try:
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
629 renamer = rope.refactor.rename.ChangeOccurrences(
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
630 self.__project, resource, offset)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
631 changes = renamer.get_changes(
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
632 newName, only_calls=onlyCalls, reads=reads, writes=writes)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
633 except Exception as err:
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
634 errorDict = self.__handleRopeError(err)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
635
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
636 self.__changes[changeGroup] = changes
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
637
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
638 result["Subcommand"] = "ChangesCalculated"
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
639 result.update(errorDict)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
640
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
641 self.sendJson("Changes", result)
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
642
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
643 def __calculateExtractChanges(self, params):
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
644 """
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
645 Private method to calculate the 'Extract' changes based on the
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
646 parameters sent by the server.
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
647
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
648 @param params dictionary containing the method parameters sent by
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
649 the server
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
650 @type dict
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
651 """
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
652 changeGroup = params["ChangeGroup"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
653 title = params["Title"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
654 filename = params["FileName"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
655 startOffset = params["StartOffset"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
656 endOffset = params["EndOffset"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
657 kind = params["Kind"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
658 newName = params["NewName"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
659 similar = params["Similar"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
660 global_ = params["Global"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
661
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
662 errorDict = {}
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
663 changes = []
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
664 result = {
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
665 "ChangeGroup": changeGroup,
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
666 "Title": title,
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
667 }
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
668
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
669 import rope.refactor.extract
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
670 resource = rope.base.libutils.path_to_resource(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
671 self.__project, filename)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
672 try:
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
673 if kind == "variable":
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
674 extractor = rope.refactor.extract.ExtractVariable(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
675 self.__project, resource, startOffset, endOffset)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
676 elif kind == "method":
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
677 extractor = rope.refactor.extract.ExtractMethod(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
678 self.__project, resource, startOffset, endOffset)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
679 else:
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
680 raise Exception("Invalid extraction kind <{0}>.".format(kind))
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
681 changes = extractor.get_changes(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
682 newName, similar=similar, global_=global_)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
683 except Exception as err:
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
684 errorDict = self.__handleRopeError(err)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
685
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
686 self.__changes[changeGroup] = changes
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
687
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
688 result["Subcommand"] = "ChangesCalculated"
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
689 result.update(errorDict)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
690
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
691 self.sendJson("Changes", result)
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
692
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
693 def __requestInlineType(self, params):
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
694 """
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
695 Private method to determine the 'Inline' changes type based on the
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
696 parameters sent by the server.
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
697
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
698 @param params dictionary containing the method parameters sent by
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
699 the server
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
700 @type dict
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
701 """
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
702 changeGroup = params["ChangeGroup"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
703 title = params["Title"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
704 filename = params["FileName"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
705 offset = params["Offset"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
706
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
707 errorDict = {}
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
708 result = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
709 "Subcommand": "InlineType",
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
710 "ChangeGroup": changeGroup,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
711 "Title": title,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
712 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
713
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
714 import rope.refactor.inline
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
715 resource = rope.base.libutils.path_to_resource(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
716 self.__project, filename)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
717 try:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
718 inliner = rope.refactor.inline.create_inline(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
719 self.__project, resource, offset)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
720 result.update({
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
721 "Name": inliner.name,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
722 "Kind": inliner.get_kind(),
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
723 })
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
724 except Exception as err:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
725 errorDict = self.__handleRopeError(err)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
726
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
727 result.update(errorDict)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
728
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
729 self.sendJson("Changes", result)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
730
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
731 def __calculateInlineChanges(self, params):
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
732 """
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
733 Private method to calculate the 'Inline' changes based on the
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
734 parameters sent by the server.
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
735
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
736 @param params dictionary containing the method parameters sent by
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
737 the server
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
738 @type dict
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
739 """
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
740 changeGroup = params["ChangeGroup"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
741 title = params["Title"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
742 filename = params["FileName"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
743 offset = params["Offset"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
744 kind = params["Kind"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
745
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
746 errorDict = {}
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
747 changes = []
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
748 result = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
749 "ChangeGroup": changeGroup,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
750 "Title": title,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
751 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
752
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
753 import rope.refactor.extract
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
754 resource = rope.base.libutils.path_to_resource(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
755 self.__project, filename)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
756 self.__progressHandle = ProgressHandle(self, title, True)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
757 try:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
758 inliner = rope.refactor.inline.create_inline(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
759 self.__project, resource, offset)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
760 if kind == "parameter":
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
761 opts = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
762 "in_hierarchy": params["Hierarchy"],
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
763 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
764 else:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
765 opts = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
766 "remove": params["Remove"],
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
767 "only_current": params["OnlyCurrent"],
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
768 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
769 changes = inliner.get_changes(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
770 task_handle=self.__progressHandle, **opts)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
771 except Exception as err:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
772 errorDict = self.__handleRopeError(err)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
773 self.__progressHandle.reset()
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
774 self.__progressHandle = None
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
775
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
776 self.__changes[changeGroup] = changes
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
777
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
778 result["Subcommand"] = "ChangesCalculated"
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
779 result.update(errorDict)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
780
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
781 self.sendJson("Changes", result)
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
782
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
783 def __requestMoveType(self, params):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
784 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
785 Private method to determine the 'Move Method' changes type based on the
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
786 parameters sent by the server.
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
787
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
788 @param params dictionary containing the method parameters sent by
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
789 the server
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
790 @type dict
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
791 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
792 changeGroup = params["ChangeGroup"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
793 title = params["Title"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
794 filename = params["FileName"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
795 offset = params["Offset"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
796
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
797 errorDict = {}
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
798 result = {
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
799 "Subcommand": "MoveType",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
800 "ChangeGroup": changeGroup,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
801 "Title": title,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
802 }
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
803
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
804 import rope.refactor.move
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
805 resource = rope.base.libutils.path_to_resource(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
806 self.__project, filename)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
807 try:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
808 mover = rope.refactor.move.create_move(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
809 self.__project, resource, offset)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
810 if isinstance(mover, rope.refactor.move.MoveGlobal):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
811 result.update({
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
812 "Kind": "move_global_method",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
813 "Method": "",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
814 })
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
815 else:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
816 result.update({
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
817 "Kind": "move_method",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
818 "Method": mover.get_method_name(),
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
819 })
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
820 except Exception as err:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
821 errorDict = self.__handleRopeError(err)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
822
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
823 result.update(errorDict)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
824
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
825 self.sendJson("Changes", result)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
826
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
827 def __calculateMoveChanges(self, params):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
828 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
829 Private method to calculate the 'Move ...' changes based on the
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
830 parameters sent by the server.
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
831
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
832 @param params dictionary containing the method parameters sent by
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
833 the server
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
834 @type dict
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
835 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
836 changeGroup = params["ChangeGroup"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
837 title = params["Title"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
838 filename = params["FileName"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
839 offset = params["Offset"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
840 kind = params["Kind"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
841 newName = params["NewName"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
842 attribute = params["Attribute"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
843 destination = params["DestinationModule"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
844
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
845 errorDict = {}
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
846 changes = []
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
847 result = {
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
848 "ChangeGroup": changeGroup,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
849 "Title": title,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
850 }
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
851
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
852 import rope.refactor.move
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
853 resource = rope.base.libutils.path_to_resource(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
854 self.__project, filename)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
855 self.__progressHandle = ProgressHandle(self, title, True)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
856 try:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
857 mover = rope.refactor.move.create_move(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
858 self.__project, resource, offset)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
859 if kind == "move_method":
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
860 changes = mover.get_changes(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
861 attribute, newName, task_handle=self.__progressHandle)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
862 else:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
863 if kind == "move_global_method":
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
864 dest = self.__project.get_pycore().find_module(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
865 os.path.splitext(destination)[0])
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
866 else:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
867 # move_module
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
868 if destination.endswith(os.sep):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
869 destination = destination[:-1]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
870 dest = self.__project.get_pycore().find_module(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
871 destination)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
872 changes = mover.get_changes(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
873 dest, task_handle=self.__progressHandle)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
874 except Exception as err:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
875 errorDict = self.__handleRopeError(err)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
876 self.__progressHandle.reset()
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
877 self.__progressHandle = None
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
878
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
879 self.__changes[changeGroup] = changes
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
880
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
881 result["Subcommand"] = "ChangesCalculated"
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
882 result.update(errorDict)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
883
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
884 self.sendJson("Changes", result)
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
885
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
886 def __requestUseFunction(self, params):
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
887 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
888 Private method to determine the 'Use Function' function name based on
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
889 the parameters sent by the server.
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
890
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
891 @param params dictionary containing the method parameters sent by
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
892 the server
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
893 @type dict
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
894 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
895 changeGroup = params["ChangeGroup"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
896 title = params["Title"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
897 filename = params["FileName"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
898 offset = params["Offset"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
899
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
900 errorDict = {}
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
901 result = {
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
902 "Subcommand": "UseFunctionName",
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
903 "ChangeGroup": changeGroup,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
904 "Title": title,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
905 }
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
906
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
907 import rope.refactor.usefunction
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
908 resource = rope.base.libutils.path_to_resource(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
909 self.__project, filename)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
910 try:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
911 user = rope.refactor.usefunction.UseFunction(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
912 self.__project, resource, offset)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
913 result["FunctionName"] = user.get_function_name()
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
914 except Exception as err:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
915 errorDict = self.__handleRopeError(err)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
916
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
917 result.update(errorDict)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
918
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
919 self.sendJson("Changes", result)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
920
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
921 def __calculateUseFunctionChanges(self, params):
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
922 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
923 Private method to calculate the 'Use Function' changes based on the
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
924 parameters sent by the server.
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
925
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
926 @param params dictionary containing the method parameters sent by
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
927 the server
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
928 @type dict
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
929 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
930 changeGroup = params["ChangeGroup"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
931 title = params["Title"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
932 filename = params["FileName"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
933 offset = params["Offset"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
934
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
935 errorDict = {}
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
936 changes = []
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
937 result = {
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
938 "ChangeGroup": changeGroup,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
939 "Title": title,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
940 }
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
941
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
942 import rope.refactor.usefunction
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
943 resource = rope.base.libutils.path_to_resource(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
944 self.__project, filename)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
945 self.__progressHandle = ProgressHandle(self, title, True)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
946 try:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
947 user = rope.refactor.usefunction.UseFunction(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
948 self.__project, resource, offset)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
949 changes = user.get_changes(task_handle=self.__progressHandle)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
950 except Exception as err:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
951 errorDict = self.__handleRopeError(err)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
952 self.__progressHandle.reset()
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
953 self.__progressHandle = None
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
954
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
955 self.__changes[changeGroup] = changes
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
956
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
957 result["Subcommand"] = "ChangesCalculated"
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
958 result.update(errorDict)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
959
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
960 self.sendJson("Changes", result)
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
961
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
962 def __calculateIntroduceFactoryChanges(self, params):
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
963 """
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
964 Private method to calculate the 'Introduce Factory' changes based on
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
965 the parameters sent by the server.
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
966
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
967 @param params dictionary containing the method parameters sent by
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
968 the server
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
969 @type dict
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
970 """
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
971 changeGroup = params["ChangeGroup"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
972 title = params["Title"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
973 filename = params["FileName"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
974 offset = params["Offset"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
975 factoryName = params["Name"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
976 globalFactory = params["GlobalFactory"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
977
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
978 errorDict = {}
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
979 changes = []
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
980 result = {
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
981 "ChangeGroup": changeGroup,
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
982 "Title": title,
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
983 }
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
984
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
985 import rope.refactor.introduce_factory
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
986 resource = rope.base.libutils.path_to_resource(
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
987 self.__project, filename)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
988 self.__progressHandle = ProgressHandle(self, title, True)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
989 try:
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
990 introducer = \
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
991 rope.refactor.introduce_factory.IntroduceFactoryRefactoring(
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
992 self.__project, resource, offset)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
993 changes = introducer.get_changes(
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
994 factoryName, global_factory=globalFactory,
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
995 task_handle=self.__progressHandle)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
996 except Exception as err:
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
997 errorDict = self.__handleRopeError(err)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
998 self.__progressHandle.reset()
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
999 self.__progressHandle = None
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1000
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1001 self.__changes[changeGroup] = changes
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1002
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1003 result["Subcommand"] = "ChangesCalculated"
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1004 result.update(errorDict)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1005
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1006 self.sendJson("Changes", result)
181
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1007
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1008 def __calculateIntroduceParameterChanges(self, params):
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1009 """
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1010 Private method to calculate the 'Introduce Parameter' changes based on
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1011 the parameters sent by the server.
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1012
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1013 @param params dictionary containing the method parameters sent by
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1014 the server
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1015 @type dict
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1016 """
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1017 changeGroup = params["ChangeGroup"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1018 title = params["Title"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1019 filename = params["FileName"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1020 offset = params["Offset"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1021 parameterName = params["Name"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1022
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1023 errorDict = {}
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1024 changes = []
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1025 result = {
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1026 "ChangeGroup": changeGroup,
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1027 "Title": title,
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1028 }
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1029
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1030 import rope.refactor.introduce_parameter
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1031 resource = rope.base.libutils.path_to_resource(
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1032 self.__project, filename)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1033 try:
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1034 introducer = rope.refactor.introduce_parameter.IntroduceParameter(
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1035 self.__project, resource, offset)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1036 changes = introducer.get_changes(parameterName)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1037 except Exception as err:
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1038 errorDict = self.__handleRopeError(err)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1039
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1040 self.__changes[changeGroup] = changes
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1041
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1042 result["Subcommand"] = "ChangesCalculated"
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1043 result.update(errorDict)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1044
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1045 self.sendJson("Changes", result)
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1046
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1047 def __calculateImportsChanges(self, params):
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1048 """
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1049 Private method to calculate the 'Import' changes based on the
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1050 parameters sent by the server.
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1051
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1052 @param params dictionary containing the method parameters sent by
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1053 the server
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1054 @type dict
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1055 """
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1056 changeGroup = params["ChangeGroup"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1057 title = params["Title"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1058 filename = params["FileName"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1059 offset = params["Offset"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1060 methodName = params["MethodName"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1061
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1062 errorDict = {}
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1063 changes = []
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1064 result = {
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1065 "ChangeGroup": changeGroup,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1066 "Title": title,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1067 }
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1068
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1069 from rope.refactor.importutils import ImportOrganizer
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1070 method = {
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1071 "organize_imports": ImportOrganizer.organize_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1072 "expand_star_imports": ImportOrganizer.expand_star_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1073 "relatives_to_absolutes": ImportOrganizer.relatives_to_absolutes,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1074 "froms_to_imports": ImportOrganizer.froms_to_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1075 "handle_long_imports": ImportOrganizer.handle_long_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1076 }[methodName]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1077 importOrganizer = ImportOrganizer(self.__project)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1078 resource = rope.base.libutils.path_to_resource(
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1079 self.__project, filename)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1080 try:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1081 changes = method(importOrganizer, resource, offset=offset)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1082 except Exception as err:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1083 errorDict = self.__handleRopeError(err)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1084
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1085 self.__changes[changeGroup] = changes
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1086
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1087 # send the change description first
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1088 if changes:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1089 description = changes.description
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1090 else:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1091 description = ""
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1092 self.sendJson("Changes", {
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1093 "ChangeGroup": changeGroup,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1094 "Title": title,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1095 "Subcommand": "ChangeDescription",
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1096 "Description": description,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1097 })
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1098
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1099 result["Subcommand"] = "ChangesCalculated"
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1100 result.update(errorDict)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1101
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1102 self.sendJson("Changes", result)
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1103
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1104
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1105 if __name__ == '__main__':
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1106 if len(sys.argv) != 4:
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1107 print('Host, port and project path parameters are missing. Abort.')
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1108 sys.exit(1)
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1109
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1110 host, port, projectPath = sys.argv[1:]
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1111 client = RefactoringClient(host, int(port), projectPath)
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1112 # Start the main loop
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1113 client.run()
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1114
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1115 sys.exit(0)
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1116
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1117 #
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1118 # eflag: noqa = M801

eric ide

mercurial