/* * 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 { } }