Skip to content

Package: CDOUIProvider$2

CDOUIProvider$2

nameinstructionbranchcomplexitylinemethod
notifyEvent(IEvent)
M: 15 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
{...}
M: 12 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011 Eike Stepper (Berlin, Germany) and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Eike Stepper - initial API and implementation
13: *******************************************************************************/
14: package org.eclipse.emf.ecp.cdo.internal.ui;
15:
16: import org.eclipse.emf.cdo.eresource.CDOResource;
17: import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
18: import org.eclipse.emf.cdo.eresource.CDOResourceNode;
19: import org.eclipse.emf.cdo.workspace.CDOWorkspace;
20: import org.eclipse.emf.cdo.workspace.CDOWorkspaceUtil;
21: import org.eclipse.emf.ecp.cdo.internal.core.CDOBranchWrapper;
22: import org.eclipse.emf.ecp.cdo.internal.core.CDOProvider;
23: import org.eclipse.emf.ecp.core.util.ECPProperties;
24: import org.eclipse.emf.ecp.spi.core.InternalProject;
25: import org.eclipse.emf.ecp.spi.ui.DefaultUIProvider;
26: import org.eclipse.net4j.util.event.IEvent;
27: import org.eclipse.net4j.util.event.IListener;
28: import org.eclipse.net4j.util.ui.DefaultPropertySource;
29: import org.eclipse.net4j.util.ui.container.ElementWizardComposite;
30: import org.eclipse.swt.SWT;
31: import org.eclipse.swt.events.ModifyEvent;
32: import org.eclipse.swt.events.ModifyListener;
33: import org.eclipse.swt.graphics.Image;
34: import org.eclipse.swt.layout.GridData;
35: import org.eclipse.swt.layout.GridLayout;
36: import org.eclipse.swt.widgets.Composite;
37: import org.eclipse.swt.widgets.Control;
38: import org.eclipse.swt.widgets.Group;
39: import org.eclipse.swt.widgets.Text;
40: import org.eclipse.ui.views.properties.IPropertySource;
41: import org.eclipse.ui.views.properties.IPropertySourceProvider;
42:
43: /**
44: * Provides UI for the CDO Provider for ECP.
45: *
46: * @author Eike Stepper
47: */
48: public class CDOUIProvider extends DefaultUIProvider {
49:
50:         /**
51:          * Default Constructor.
52:          */
53:         public CDOUIProvider() {
54:                 super(CDOProvider.NAME);
55:         }
56:
57:         @Override
58:         public String getText(Object element) {
59:                 if (element instanceof CDOResourceNode) {
60:                         final CDOResourceNode node = (CDOResourceNode) element;
61:                         return node.getName();
62:                 }
63:
64:                 return super.getText(element);
65:         }
66:
67:         @Override
68:         public Image getImage(Object element) {
69:                 if (element instanceof CDOBranchWrapper) {
70:                         return Activator.getImage("icons/branch.gif"); //$NON-NLS-1$
71:                 }
72:
73:                 if (element instanceof CDOResource) {
74:                         return Activator.getImage("icons/resource.gif"); //$NON-NLS-1$
75:                 }
76:
77:                 if (element instanceof CDOResourceFolder) {
78:                         return Activator.getImage("icons/folder.gif"); //$NON-NLS-1$
79:                 }
80:
81:                 return super.getImage(element);
82:         }
83:
84:         @Override
85:         @SuppressWarnings("unchecked")
86:         public <T> T getAdapter(Object adaptable, Class<T> adapterType) {
87:                 if (adapterType == IPropertySourceProvider.class && adaptable instanceof InternalProject) {
88:                         final CDOWorkspace workspace = CDOProvider.getInstance().getAdapter(adaptable, CDOWorkspace.class);
89:                         if (workspace != null) {
90:                                 return (T) new IPropertySourceProvider() {
91:                                         @Override
92:                                         public IPropertySource getPropertySource(Object object) {
93:                                                 return new DefaultPropertySource<CDOWorkspace>(workspace, CDOWorkspaceUtil.getProperties());
94:                                         }
95:                                 };
96:                         }
97:                 }
98:
99:                 return super.getAdapter(adaptable, adapterType);
100:         }
101:
102:         @Override
103:         public Control createAddRepositoryUI(Composite parent, final ECPProperties repositoryProperties,
104:                 final Text repositoryNameText, Text repositoryLabelText, Text repositoryDescriptionText) {
105:                 final GridLayout mainLayout = new GridLayout(1, false);
106:                 mainLayout.marginWidth = 0;
107:                 mainLayout.marginHeight = 0;
108:
109:                 final Composite composite = new Composite(parent, SWT.NONE);
110:                 composite.setLayout(mainLayout);
111:
112:                 final GridLayout group1Layout = new GridLayout(1, false);
113:                 group1Layout.marginWidth = 0;
114:                 group1Layout.marginHeight = 0;
115:
116:                 final Group group1 = new Group(composite, SWT.NONE);
117:                 group1.setLayout(group1Layout);
118:                 group1.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
119:                 group1.setText("Connection"); //$NON-NLS-1$
120:                 final ElementWizardComposite connectorWizard = new ElementWizardComposite.WithRadios(group1, SWT.NONE,
121:                         "org.eclipse.net4j.connectors", "Type:"); //$NON-NLS-1$ //$NON-NLS-2$
122:                 connectorWizard.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
123:                 connectorWizard.getNotifier().addListener(new IListener() {
124:                         @Override
125:                         public void notifyEvent(IEvent event) {
126:                                 repositoryProperties.addProperty(CDOProvider.PROP_CONNECTOR_TYPE, connectorWizard.getFactoryType());
127:                                 repositoryProperties.addProperty(CDOProvider.PROP_CONNECTOR_DESCRIPTION,
128:                                         connectorWizard.getDescription());
129:                         }
130:                 });
131:
132:                 final Group group2 = new Group(composite, SWT.NONE);
133:                 group2.setLayout(new GridLayout(1, false));
134:                 group2.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
135:                 group2.setText("Repository"); //$NON-NLS-1$
136:                 final Text remoteRepositoryNameText = new Text(group2, SWT.BORDER);
137:                 remoteRepositoryNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
138:                 remoteRepositoryNameText.addModifyListener(new ModifyListener() {
139:                         private String oldText = ""; //$NON-NLS-1$
140:
141:                         @Override
142:                         public void modifyText(ModifyEvent e) {
143:                                 if (oldText.equals(repositoryNameText.getText())) {
144:                                         oldText = remoteRepositoryNameText.getText();
145:                                         repositoryNameText.setText(oldText);
146:                                         repositoryProperties.addProperty(CDOProvider.PROP_REPOSITORY_NAME, oldText);
147:                                 }
148:                         }
149:                 });
150:
151:                 return composite;
152:         }
153: }