Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 3854d1adf0691ebe743463aece8a946423a9fd00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
/*
 * Copyright (c) 2015, 2016 Eike Stepper (Berlin, Germany) and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Eike Stepper - initial API and implementation
 */
package org.eclipse.emf.cdo.doc.users;

import org.eclipse.emf.cdo.doc.online.EMFCompareGuide;
import org.eclipse.emf.cdo.doc.online.EMFFormsGuide;
import org.eclipse.emf.cdo.doc.users.Doc02_ManagingRepositories.Doc_CreatingRepositories.Doc_LocalRepositories;
import org.eclipse.emf.cdo.doc.users.Doc04_CheckingOut.Doc_CheckoutType.Doc_HistoricalCheckouts;
import org.eclipse.emf.cdo.doc.users.Doc04_CheckingOut.Doc_CheckoutType.Doc_OfflineCheckouts;
import org.eclipse.emf.cdo.doc.users.Doc04_CheckingOut.Doc_CheckoutType.Doc_TransactionalCheckouts;
import org.eclipse.emf.cdo.doc.users.Doc05_UsingCheckouts.Doc_ComparingCheckouts;
import org.eclipse.emf.cdo.doc.users.Doc07_UsingModels.Doc_EditingModelElements;
import org.eclipse.emf.cdo.doc.users.Doc09_TechnicalBackground.Doc_BackgroundCompare;
import org.eclipse.emf.cdo.session.remote.CDORemoteSessionManager;
import org.eclipse.emf.cdo.view.CDOView.Options;

/**
 * Elements of the User Interface
 * <p>
 * The CDO user interface consists of a number of CDO-specific views, editors, and preference pages,
 * as well as some integrations with existing Eclipse views. These user interface elements can be added to
 * and used in any Eclipse perspective, or more comprehensively in the {@link Doc_ExplorerPerspective CDO Explorer}
 * perspective.
 * <p>
 * The following sections describe the various user interface elements and explain their purpose.
 * <p>
 * <b>Table of Contents</b> {@toc}
 *
 * @author Eike Stepper
 */
public class Doc01_UserInterface
{
  /**
   * CDO Explorer Perspective
   * <p>
   * The CDO Explorer perspective is a convenient selection of those views and shortcuts that are most
   * commonly used when working with CDO. It has the following default layout: <p align="center">{@image explorer-perspective.png}
   */
  public class Doc_ExplorerPerspective
  {
  }

  /**
   * CDO Repositories View
   * <p>
   * The CDO Repositories view displays the various repositories and connections that are configured for use in the
   * current workspace. It allows to create new repositories and connections, rename or delete existing ones,
   * manage the branches in them, and finally checking out from them: <p align="center">{@image repositories-view.png}
   * <p>
   * In contrast to sessions in the {@link Doc_SessionsView} repositories and connections configured in the
   * CDO Repositories view are remembered across Eclipse restarts.
   *
   * @see Doc02_ManagingRepositories
   * @see Doc04_CheckingOut
   *
   */
  public class Doc_RepositoriesView
  {
  }

  /**
   * CDO Administration View
   * <p>
   * The CDO Administration view displays configured servers and lists their discovered repositories in real-time.
   * New servers can be added, existing ones can be removed. New repositories can be created in the servers and existing
   * ones can be deleted. If a repository supports security, i.e., authentication and authorization, an editor for the
   * various security concepts, such as users, groups, roles, and permissions can be opened on it:
   * <p align="center">{@image administration-view.png}
   */
  public class Doc_AdministrationView
  {
  }

  /**
   * CDO Collaboration View
   * <p>
   * The CDO Collaboration view displays the other users that are connected to the current repository, more
   * exactly their sessions. When double-clicking a user in this view a dialog pops up asking you for a short message
   * to send to the selected user. The targeted user needs to be subscribed to receiving messages. This view is a very
   * simple example of a custom chat protocol on top of the CDO protocol: <p align="center">{@image collaboration-view.png}
   * <p>
   * The details of remote message subscriptions and how to contribute custom message handlers is explained
   * in {@link CDORemoteSessionManager}.
   */
  public class Doc_CollaborationView
  {
  }

  /**
   * CDO Watch List View
   * <p>
   * The CDO Watch List view is a simple example of {@link Options#addChangeSubscriptionPolicy(org.eclipse.emf.cdo.view.CDOAdapterPolicy)
   * change subscriptions}. Model objects can be dragged from anywhere
   * and dropped on the watch list view to create a table entry that shows the latest changes from any user to the
   * selected model object: <p align="center">{@image watchlist-view.png}
   */
  public class Doc_WatchListView
  {
  }

  /**
   * CDO Time Machine View
   * <p>
   * The CDO Time Machine view offers a slider control that can be used to look at models at different historical times.
   * The time slider is only enabled when a model or model object in a historical checkout is selected:
   * <p align="center">{@image timemachine-view.png}
   * <p>
   * The resource tree in the selected historical checkout as well as the contents of all editors opened on this checkout
   * changes in real-time while the slider control is dragged back and forth in time.
   *
   * @see Doc_HistoricalCheckouts
   */
  public class Doc_TimeMachineView
  {
  }

  /**
   * CDO Sessions View
   * <p>
   * The CDO Sessions view provides a rather technical approach to working with the models in repositories and
   * is mostly superseded now by more convenient functionality of the {@link Doc_RepositoriesView CDO Repositories view}
   * and the {@link Doc_ProjectExplorerIntegration Project Explorer integration}. Nevertheless, it can still be used to
   * open sessions to remote repositories, open model views and transactions on sessions, browse the resource trees
   * of repositories, open model editors on selected resources, and more: <p align="center">{@image sessions-view.png}
   * <p>
   * Please note that sessions opened in the CDO Sessions view are <b>not</b> remembered across Eclipse restarts.
   */
  public class Doc_SessionsView
  {
  }

  /**
   * CDO Server Browser
   * <p>
   * The CDO Server Browser allows to introspect the internal data of {@link Doc_LocalRepositories local repositories} or
   * locally replicated repositories of {@link Doc_OfflineCheckouts offline checkouts}
   * in a web browser: <p align="center">{@image server-browser.png}
   * <p>
   * It is only meant to be used for test and debug purposes.
   * It is <b>not</b> meant to be a production tool that would scale to arbitrary repository sizes!
   */
  public class Doc_ServerBrowser
  {
  }

  /**
   * CDO Checkout Wizard
   * <p>
   * CDO provides an Eclipse Import wizard to create checkouts from repositories without opening the
   * {@link Doc_RepositoriesView}: <p align="center">{@image import-wizard.png}
   *
   * @see Doc04_CheckingOut
   */
  public class Doc_CheckoutWizard
  {
  }

  /**
   * CDO Model Editor
   * <p>
   * The CDO model editor is a generic editor for the model resources in a repository. It displays the contents of the resource
   * in an editable, structured tree and allows to modify the tree structure of the resource via the New Child, New Sibling,
   * or Delete context menu actions. Model elements can be moved or copied using drag and drop. Their attributes and references
   * can be edited in the {@link Doc_PropertySheetIntegration Properties view}.
   * <p>
   * The CDO model editor is a generated EMF editor with some additional features such as real-time locking decoration and early conflict
   * detection: <p align="center">{@image model-editor.png}
   * <p>
   * Whether the CDO model editor actually supports editing the displayed model depends on whether the checkout of the model is
   * {@link Doc_TransactionalCheckouts transactional} or not.
   */
  public class Doc_ModelEditor
  {
  }

  /**
   * Project Explorer Integration
   * <p>
   * As of CDO 4.4 the preferred way to work with models in or from repositories is the Project Explorer integration.
   * This integration is centered around the concept of a <i>checkout</i>. Checkouts can be created in the {@link Doc_RepositoriesView}
   * or in the Project Explorer view with the {@link Doc_CheckoutWizard CDO Checkout wizard}. Once created, checkouts are displayed
   * in the Project Explorer like workspace projects and decorated with a small blue repository image. In contrast to
   * workspace projects the displayed checkouts have no physical representation in the workspace.
   * <p>
   * The folders, resources, and model elements of the checked-out repository are displayed under the checkout and can be
   * modified directly via drag and drop to move or copy them, or via double-click to open the {@link Doc_ModelEditor CDO model editor}
   * on a resource or an EMF Forms dialog on a model element: <p align="center">{@image project-explorer.png}
   * <p>
   * The context menu offers various functions for checkouts, such as renaming, closing, or deleting them, showing them in
   * different views, switching them to different branches or branch points, comparing them with different branches or branch points,
   * and merging from different branches or branch points.
   * <p>
   * In contrast to sessions in the {@link Doc_SessionsView} checkouts created in the
   * Project Explorer view are remembered across Eclipse restarts.
   *
   * @see Doc04_CheckingOut
   * @see Doc05_UsingCheckouts
   */
  public class Doc_ProjectExplorerIntegration
  {
  }

  /**
   * Property Sheet Integration
   * <p>
   * CDO integrates with Eclipse's Properties view and provides various semantic and technical information about the
   * element selected in the current perspective: <p align="center">{@image property-sheet.png}
   * <p>
   * For model elements selected in editors of {@link Doc_TransactionalCheckouts transactional} checkouts the
   * property sheet integration supports the modification of the element's attribute and reference values.
   */
  public class Doc_PropertySheetIntegration
  {
  }

  /**
   * History Integration
   * <p>
   * CDO integrates with Eclipse's History view and displays the commit tree of the selected repository, branch, checkout, or
   * model element: <p align="center">{@image history.png}
   * <p>
   * If the History view does not react to selection changes activate the "Link with Editor and Selection" button
   * in the History view's toolbar.
   * <p>
   * The commit tree is updated in real-time when local transactions are committed but also when other users commit their changes
   * from other workstations.
   * <p>
   * If the repository that the current commit tree is based upon supports branching (see {@link Doc03_UsingBranches}) new branches
   * can be forked off of the selected commit directly in the History view.
   * <p>
   * New checkouts can also be created directly from the selected commit by opening the context menu and selecting the Checkout action
   * or the Checkout As action. See {@link Doc_CheckoutWizard} or {@link Doc04_CheckingOut} for details about the checkout process.
   */
  public class Doc_HistoryIntegration
  {
  }

  /**
   * Compare Integration
   * <p>
   * CDO integrates with EMF Compare to provide efficient and scalable compare editors. Different branches
   * or different branch points can be compared with each other: <p align="center">{@image compare.png}
   * <p>
   * CDO also provides efficient and scalable merge editors. Different branches
   * or different branch points can be merged from each other: <p align="center">{@image merge.png}
   * <p>
   * Comparisons and merges are started either from the {@link Doc_HistoryIntegration History view}, from the
   * context menus of {@link Doc05_UsingCheckouts checkouts}, or by dragging and dropping branches, branch points, or checkouts
   * onto other checkouts in the {@link Doc_ProjectExplorerIntegration Project Explorer} while pressing the Shift key
   * (for comparisons) or the Ctrl key (for merges).
   *
   * @see EMFCompareGuide
   * @see Doc_ComparingCheckouts
   * @see Doc_BackgroundCompare
   */
  public class Doc_CompareIntegration
  {
  }

  /**
   * Forms Integration
   * <p>
   * CDO integrates with EMF Forms to provide generic editing dialogs for the model
   * element that are displayed in the {@link Doc_ProjectExplorerIntegration Project Explorer}: <p align="center">{@image object-edit.png}
   *
   * @see EMFFormsGuide
   * @see Doc_EditingModelElements
   */
  public class Doc_FormsIntegration
  {
  }

  /**
   * Preference Pages
   * <p>
   * The only setting that can currently be adjusted on the CDO Explorer preference page is the number of minutes
   * to keep a repository connected after it has been used the last time: <p align="center">{@image preferences.png}
   */
  public class Doc_PreferencePages
  {
  }
}

Back to the top