|
19 | 19 | import java.io.ByteArrayInputStream; |
20 | 20 | import java.io.File; |
21 | 21 | import java.io.IOException; |
| 22 | +import java.io.InputStream; |
22 | 23 | import java.nio.charset.Charset; |
23 | 24 | import java.util.ArrayList; |
24 | 25 | import java.util.Arrays; |
@@ -103,6 +104,8 @@ public class ExperimentManagerService { |
103 | 104 | private static final String EXPERIMENTS_FOLDER = "Experiments"; //$NON-NLS-1$ |
104 | 105 | private static final String TRACES_FOLDER = "Traces"; //$NON-NLS-1$ |
105 | 106 | private static final String SUFFIX = "_exp"; //$NON-NLS-1$ |
| 107 | + private static final String BOOKMARKS_HIDDEN_FILE = ".bookmarks"; //$NON-NLS-1$ |
| 108 | + private static final String EXPERIMENT_EDITOR_INPUT_TYPE = "editorInputType.experiment"; //$NON-NLS-1$ |
106 | 109 |
|
107 | 110 | /** |
108 | 111 | * Getter for the list of experiments from the trace manager |
@@ -374,7 +377,7 @@ public Response postExperiment(@RequestBody(content = { |
374 | 377 | experiment.getNext(ctx); |
375 | 378 | ctx.dispose(); |
376 | 379 |
|
377 | | - TmfSignalManager.dispatchSignal(new TmfTraceOpenedSignal(ExperimentManagerService.class, experiment, null)); |
| 380 | + TmfSignalManager.dispatchSignal(new TmfTraceOpenedSignal(ExperimentManagerService.class, experiment, createBookmarksFile(resource))); |
378 | 381 |
|
379 | 382 | EXPERIMENTS.put(expUUID, experiment); |
380 | 383 | TRACE_INSTANCES.put(expUUID, uuidToTraceInstances); |
@@ -495,6 +498,24 @@ private static void createSupplementaryFolder(IResource experimentResource) { |
495 | 498 | } |
496 | 499 | } |
497 | 500 |
|
| 501 | + private static IFile createBookmarksFile(IResource resource) { |
| 502 | + IFile file = ((IFolder) resource).getFile(resource.getName() + '_'); |
| 503 | + try { |
| 504 | + if (!file.exists()) { |
| 505 | + final IFile bookmarksFile = ((IFolder) resource.getParent()).getFile(BOOKMARKS_HIDDEN_FILE); |
| 506 | + if (!bookmarksFile.exists()) { |
| 507 | + final InputStream source = new ByteArrayInputStream(new byte[0]); |
| 508 | + bookmarksFile.create(source, IResource.FORCE | IResource.HIDDEN, new NullProgressMonitor()); |
| 509 | + } |
| 510 | + file.createLink(bookmarksFile.getLocation(), IResource.REPLACE | IResource.HIDDEN, new NullProgressMonitor()); |
| 511 | + } |
| 512 | + file.setPersistentProperty(TmfCommonConstants.TRACETYPE, EXPERIMENT_EDITOR_INPUT_TYPE); |
| 513 | + } catch (CoreException e) { |
| 514 | + Activator.getInstance().logWarning("Error creating bookmarks file", e); //$NON-NLS-1$ |
| 515 | + } |
| 516 | + return file; |
| 517 | + } |
| 518 | + |
498 | 519 | private static void createFolder(IFolder folder) throws CoreException { |
499 | 520 | if (!folder.exists()) { |
500 | 521 | if (folder.getParent() instanceof IFolder) { |
|
0 commit comments