blob: 50e99a84884063b67a2e5b397e3abe097a00ed83 (
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
|
/*****************************************************************************
* Copyright (c) 2013 CEA LIST.
*
* 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:
* CEA LIST - Initial API and implementation
*****************************************************************************/
package org.eclipse.papyrus.views.properties.toolsmiths.storage.actions;
import org.eclipse.papyrus.views.properties.toolsmiths.storage.actions.IContextCopyAction;
import org.eclipse.papyrus.views.properties.toolsmiths.storage.actions.IContextDeleteAction;
import org.eclipse.papyrus.views.properties.toolsmiths.storage.actions.IContextEditAction;
import org.eclipse.papyrus.views.properties.toolsmiths.storage.actions.IContextStorageActionProvider;
import org.eclipse.papyrus.infra.properties.contexts.Context;
/**
* A provider of actions to the Properties View customization dialog on the <tt>org.eclipse.papyrus.customization.properties.contextStorage</tt> extension point to implement {@linkplain IContextCopyAction copying}, {@linkplain IContextEditAction editing},
* and {@linkplain IContextDeleteAction deletion} of {@link Context} to the corresponding storage
* provider.
*
* @see IContextCopyAction
* @see IContextEditAction
* @see IContextDeleteAction
*/
public interface IContextStorageActionProvider {
IContextStorageActionProvider READ_ONLY = new ReadOnlyContextStorageActionProvider();
/**
* Queries whether I provide edit and delete actions for the a {@code context}.
*
* @param context
* a context selected by the user to act on
*
* @return whether I provide actions for it
*/
boolean providesFor(Context context);
IContextCopyAction getContextCopyAction();
IContextEditAction getContextEditAction();
IContextDeleteAction getContextDeleteAction();
//
// Nested types
//
class ReadOnlyContextStorageActionProvider implements IContextStorageActionProvider {
@Override
public boolean providesFor(Context context) {
// I am the final fall-back that provides no editing capability, so I always return false
return false;
}
@Override
public IContextCopyAction getContextCopyAction() {
// I am not actually provided on the extension point, so this isn't needed
return null;
}
@Override
public IContextEditAction getContextEditAction() {
// I can't edit anything, so this isn't needed
return null;
}
@Override
public IContextDeleteAction getContextDeleteAction() {
// I can't edit anything, so this isn't needed
return null;
}
}
}
|