Issue #639 adding new files missed in last commit

Former-commit-id: 26ada47164c9b004cff5e869735ee11655af6a40
This commit is contained in:
Brad Gonzales 2012-06-01 18:20:24 -05:00
parent 78e44746d6
commit 3795f90712
4 changed files with 1049 additions and 0 deletions

View file

@ -0,0 +1,470 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.collaboration.ui.session;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
/**
* Simple search composite control for a text based composite..
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 31, 2012 bgonzale Initial creation
*
* </pre>
*
* @author bgonzale
* @version 1.0
*/
public class SearchComposite extends Composite {
// final Color HIGHLIGHT_COLOR = Display.getCurrent().getSystemColor(
// SWT.COLOR_YELLOW);
private StringBuilder text;
private Button caseSensitive;
private boolean searchFWD = true;
private String searchText;
private List<MatchResult> results = new ArrayList<MatchResult>();
private ListIterator<MatchResult> resultIter;
private SearchView searchView;
private KeyListener searchKeyListener;
private Text searchTextBox;
private Button bck;
private Button fwd;
private Button first;
private Button last;
// public static class HighlightSelection {
// public final int start;
//
// public final int length;
//
// public HighlightSelection(int start, int length) {
// this.start = start;
// this.length = length;
// }
// }
public static interface SearchView {
void select(int start, int end);
void reachedLast();
void reachedFirst();
// void setHighlights(HighlightSelection[] selections);
// void removeHighlights();
}
public class DefaultSearchView implements SearchView {
private StyledText searchView;
public DefaultSearchView(StyledText searchView) {
this.searchView = searchView;
}
@Override
public void select(int start, int end) {
this.searchView.setSelectionRange(start, end - start);
}
@Override
public void reachedLast() {
// go to first
while (resultIter.hasPrevious()) {
resultIter.previous();
}
}
@Override
public void reachedFirst() {
// go to last
while (resultIter.hasNext()) {
resultIter.next();
}
}
// @Override
// public void setHighlights(HighlightSelection[] selections) {
// StyleRange[] ranges = new StyleRange[selections.length];
// for (int i = 0; i < selections.length; ++i) {
// HighlightSelection sel = selections[i];
// ranges[i] = new StyleRange(sel.start, sel.length,
// FOREGROUND_COLOR, HIGHLIGHT_COLOR);
// }
// searchView.setStyleRanges(ranges);
// }
//
// @Override
// public void removeHighlights() {
// StyleRange[] ranges = searchView.getStyleRanges();
// for (StyleRange style : ranges) {
// if (style.background == HIGHLIGHT_COLOR) {
// style.background = searchView.getBackground();
// }
// }
// searchView.setStyleRanges(ranges);
// }
}
/**
* @param parent
* @param style
*/
public SearchComposite(Composite parent, int style) {
super(parent, style);
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
this.setLayout(new GridLayout(6, false));
this.setLayoutData(gd);
searchTextBox = new Text(this, SWT.RESIZE);
searchTextBox.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false,
false));
gd = new GridData(SWT.FILL, SWT.FILL, true, false);
searchTextBox.setLayoutData(gd);
searchTextBox.addKeyListener(new KeyListener() {
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
});
first = new Button(this, SWT.PUSH);
first.setText("<<");
first.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
first.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
searchFWD = false;
MatchResult result = null;
while (resultIter.hasPrevious()) {
result = resultIter.previous();
}
if (result != null) {
searchView.select(result.start(), result.end());
}
if (result == null && resultIter.hasNext()) {
result = resultIter.next();
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
bck = new Button(this, SWT.PUSH);
bck.setText("<");
bck.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
bck.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
searchFWD = false;
nextSearchMatch();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
fwd = new Button(this, SWT.PUSH);
fwd.setText(">");
fwd.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
fwd.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
searchFWD = true;
nextSearchMatch();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
last = new Button(this, SWT.PUSH);
last.setText(">>");
last.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
last.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
searchFWD = true;
MatchResult result = null;
while (resultIter.hasNext()) {
result = resultIter.next();
}
if (result == null && resultIter.hasPrevious()) {
result = resultIter.previous();
}
if (result != null) {
searchView.select(result.start(), result.end());
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
caseSensitive = new Button(this, SWT.CHECK);
caseSensitive.setText("Case");
caseSensitive.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false,
false));
searchKeyListener = new KeyListener() {
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if (search(e)) {
} else if (e.keyCode == SWT.KEYPAD_CR || e.keyCode == SWT.CR) {
if (searchText == null
|| !searchText.equals(searchTextBox.getText())) {
searchText = searchTextBox.getText();
updateMatches();
}
if (searchFWD) {
fwd.setFocus();
} else {
bck.setFocus();
}
nextSearchMatch();
} else {
searchTextBox.setFocus();
}
}
};
this.addKeyListener(searchKeyListener);
searchTextBox.addKeyListener(searchKeyListener);
bck.addKeyListener(searchKeyListener);
fwd.addKeyListener(searchKeyListener);
caseSensitive.addKeyListener(searchKeyListener);
caseSensitive.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
updateMatches();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
updateMatches();
}
});
}
public boolean search(KeyEvent e) {
boolean result = false;
if (((e.stateMask & SWT.CTRL) == SWT.CTRL)) {
if (e.keyCode == 'f' || e.keyCode == 'b' || e.keyCode == 'B') {
searchFWD = e.keyCode == 'f' ? true : false;
hide(false);
// redraw();
searchTextBox.setFocus();
if (searchFWD) {
fwd.setFocus();
} else {
bck.setFocus();
}
if (text == null) {
reachedLimit();
}
if (searchText == null
|| !searchText.equals(searchTextBox.getText())) {
searchText = searchTextBox.getText();
updateMatches();
}
nextSearchMatch();
result = true;
}
} else if (e.keyCode == SWT.ESC) {
hide(true);
redraw();
result = true;
}
return result;
}
public void hide(boolean isHidden) {
((GridData) getLayoutData()).exclude = isHidden;
setVisible(!isHidden);
// if (searchView != null) {
// searchView.removeHighlights();
// }
getParent().layout();
}
/**
* increment/decrement to next match. if at end of matches, increment to
* next/previous leaf.
*
* @param tree2
*/
protected void nextSearchMatch() {
boolean hasNextInSequence;
if (resultIter == null) {
hasNextInSequence = false;
} else {
hasNextInSequence = searchFWD ? resultIter.hasNext() : resultIter
.hasPrevious();
}
if (hasNextInSequence) {
MatchResult current = searchFWD ? resultIter.next() : resultIter
.previous();
searchView.select(current.start(), current.end());
} else {
reachedLimit();
}
}
private void updateMatches() {
int patternFlags = caseSensitive.getSelection() ? 0
: Pattern.CASE_INSENSITIVE;
results.clear();
if (text == null) {
reachedLimit();
}
if (searchText != null) {
Pattern pattern = Pattern.compile(searchText, patternFlags);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
results.add(matcher.toMatchResult());
}
// HighlightSelection[] highlights = new HighlightSelection[results
// .size()];
// for (ListIterator<MatchResult> iter = results.listIterator();
// iter
// .hasNext();) {
// int index = iter.nextIndex();
// MatchResult mr = iter.next();
// highlights[index] = new HighlightSelection(mr.start(), mr.end()
// - mr.start());
// }
// searchView.setHighlights(highlights);
int index = searchFWD ? 0 : results.size();
resultIter = results.listIterator(index);
}
}
private void reachedLimit() {
if (searchFWD) {
searchView.reachedLast();
} else {
searchView.reachedFirst();
}
}
/**
* @param searchView
* the SearchView to set
*/
public void setSearchView(SearchView searchView) {
this.searchView = searchView;
}
/**
* @return the text
*/
public String getText() {
return text.toString();
}
/**
* @param text
* the text to set
*/
public void setText(String text) {
if (this.text == null) {
this.text = new StringBuilder();
}
this.text.setLength(0);
this.text.append(text);
updateMatches();
}
/**
* @return the searchKeyListener
*/
public KeyListener getSearchKeyListener() {
return searchKeyListener;
}
public void setDefaultSearchView(StyledText styledText) {
setText(styledText.getText());
setSearchView(new DefaultSearchView(styledText));
}
public void appendText(String newText) {
this.text.append(newText);
updateMatches();
}
}

View file

@ -0,0 +1,425 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.collaboration.ui.session;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.localization.exception.LocalizationException;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.viz.collaboration.comm.provider.user.UserId;
import com.raytheon.uf.viz.collaboration.data.CollaborationDataManager;
import com.raytheon.uf.viz.collaboration.ui.session.SearchComposite.SearchView;
/**
* Browse, view, and search messages in the archive.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 22, 2012 bgonzale Initial creation
*
* </pre>
*
* @author bgonzale
* @version 1.0
*/
public class SessionMsgArchiveBrowser extends Composite implements SearchView {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(SessionMsgArchiveBrowser.class);
final Color INACTIVE_COLOR = Display.getCurrent().getSystemColor(
SWT.COLOR_TITLE_INACTIVE_FOREGROUND);
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd.hhmmss");
final SimpleDateFormat newSdf = new SimpleDateFormat(
"EEE d MMM yyyy HH:mm:ss z");
private StyledText logView;
private Label logName;
private List<TreeItem> leaves;
private ListIterator<TreeItem> leafIter;
private Tree tree;
private SearchComposite searchComp;
private String browserName;
private Object logDir;
/**
* @param parent
* @param style
*/
public SessionMsgArchiveBrowser(Composite parent, int style) {
super(parent, style);
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
this.setLayout(new GridLayout(1, true));
this.setLayoutData(gd);
init();
}
/**
* @param parent
* @param style
*/
public SessionMsgArchiveBrowser(Composite parent, int style,
LocalizationFile logDir) {
this(parent, style);
setDir(logDir);
}
public void setDir(LocalizationFile logDir) {
if (this.logDir != null && this.logDir.equals(logDir)) {
return;
}
try {
if (logDir == null) {
UserId user = CollaborationDataManager.getInstance()
.getCollaborationConnection(true).getUser();
logDir = SessionMsgArchive.getArchiveDir(user.getHost(),
user.getName(), null);
}
this.logDir = logDir;
setBrowserName(logDir);
populateTree(tree, leaves, logDir);
leafIter = leaves.listIterator();
} catch (ParseException e) {
statusHandler
.error("Unable to parse log directory tree to produce collaboration log view",
e);
}
}
protected void init() {
SashForm mainForm = new SashForm(this, SWT.HORIZONTAL);
mainForm.setLayout(new GridLayout(2, false));
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
gd.widthHint = 800;
gd.heightHint = 600;
mainForm.setLayoutData(gd);
Composite childBarComp = new Composite(mainForm, SWT.NONE);
childBarComp.setLayout(new GridLayout(1, false));
childBarComp
.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
tree = new Tree(childBarComp, SWT.BORDER);
leaves = new ArrayList<TreeItem>();
leafIter = leaves.listIterator();
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
gd.heightHint = 300;
gd.widthHint = 400;
tree.setLayoutData(gd);
Composite logViewPart = new Composite(mainForm, SWT.NONE);
logViewPart.setLayout(new GridLayout(1, false));
logViewPart.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true));
Composite logHeaderPart = new Composite(logViewPart, SWT.NONE);
logHeaderPart.setLayout(new GridLayout(1, false));
logHeaderPart.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false,
false));
logName = new Label(logHeaderPart, SWT.READ_ONLY);
gd = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gd.widthHint = 180;
logName.setLayoutData(gd);
logView = new StyledText(logViewPart, SWT.V_SCROLL | SWT.H_SCROLL
| SWT.BORDER | SWT.READ_ONLY);
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
logView.setLayoutData(gd);
logView.setEditable(false);
searchComp = new SearchComposite(logViewPart, SWT.BORDER);
searchComp.setSearchView(this);
searchComp.hide(true);
tree.addKeyListener(searchComp.getSearchKeyListener());
logView.addKeyListener(searchComp.getSearchKeyListener());
tree.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
Object data = event.item.getData();
if (data != null) {
TreeItem tItem = (TreeItem) event.item;
setLogView(tItem);
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
mainForm.setWeights(new int[] { 30, 70 });
mainForm.setVisible(true);
}
/**
* Set the current leaf displayed in the log viewer. If search is on, then
*
* @param tItem
*/
private void setLogView(TreeItem tItem) {
Object data = tItem.getData();
if (data != null) {
tItem.setExpanded(true);
tItem.getParent().setSelection(tItem);
try {
LocalizationFile lFile = (LocalizationFile) tItem.getData();
File file = lFile.getFile(true);
if (file != null && file.exists()) {
BufferedReader reader = null;
try {
FileReader fReader = new FileReader(file);
reader = new BufferedReader(fReader);
char[] cbuf = new char[1024];
StringBuilder sb = new StringBuilder();
while (reader.read(cbuf) != -1) {
sb.append(cbuf);
}
logName.setText(tItem.getText());
searchComp.setText(sb.toString());
logView.setText(sb.toString());
logView.setStyleRange(null);
} finally {
if (reader != null) {
reader.close();
}
}
}
} catch (LocalizationException e) {
statusHandler
.error("Unable to retrieve collaboration log file from localization",
e);
} catch (FileNotFoundException e) {
statusHandler
.error("Unable to find collaboration log file in localization",
e);
} catch (IOException e) {
statusHandler
.error("Unable to read collaboration log file from localization",
e);
}
}
}
private void populateTree(Tree tree, List<TreeItem> leaves,
LocalizationFile logDir) throws ParseException {
tree.clearAll(true);
leaves.clear();
IPathManager pm = PathManagerFactory.getPathManager();
LocalizationContext[] contexts = pm.getLocalSearchHierarchy(logDir
.getContext().getLocalizationType());
LocalizationFile[] files = pm.listFiles(contexts, logDir.getName(),
null, true, true); // Win32
Map<String, TreeItem> itemMap = new HashMap<String, TreeItem>(
files.length);
for (final LocalizationFile lFile : files) {
String name = lFile.getName().replaceFirst(
logDir.getName() + File.separator, "");
String[] parts = name.split(File.separator);
String parentPath = "";
for (int i = 0; i < parts.length; ++i) {
String part = parts[i];
TreeItem parentItem = itemMap.get(parentPath);
parentPath += File.separator + part;
TreeItem item = itemMap.get(parentPath);
if (item == null) {
if (parentItem == null) {
item = new TreeItem(tree, SWT.NONE);
} else {
item = new TreeItem(parentItem, SWT.NONE);
}
boolean isLeaf = (i == parts.length - 1);
if (isLeaf) {
item.setData(lFile);
String datePart = part.substring(0,
part.lastIndexOf("."));
Date d = sdf.parse(datePart);
item.setText(newSdf.format(d));
leaves.add(item);
} else {
item.setForeground(INACTIVE_COLOR);
item.setText(part);
}
item.setExpanded(!isLeaf);
itemMap.put(parentPath, item);
}
}
}
}
@Override
public void select(int start, int end) {
logView.setSelection(start, end);
}
/**
* searching forward, reached last item.
*/
@Override
public void reachedLast() {
TreeItem selected = null;
TreeItem[] arr = tree.getSelection();
if (arr.length > 0) {
selected = arr[0];
} else {
selected = leaves.get(0);
}
if (leafIter.hasNext()) {
selected = leafIter.next();
} else {
leafIter = leaves.listIterator();
selected = leafIter.next();
}
setLogView(selected);
}
/**
* searching backward, reached first item.
*/
@Override
public void reachedFirst() {
TreeItem selected = null;
TreeItem[] arr = tree.getSelection();
if (arr.length > 0) {
selected = arr[0];
} else {
selected = leaves.get(0);
}
if (leafIter.hasPrevious()) {
selected = leafIter.previous();
} else {
int index = leaves.size();
leafIter = leaves.listIterator(index);
selected = leafIter.previous();
}
setLogView(selected);
}
/**
* @return the browserName
*/
public String getBrowserName() {
return browserName;
}
/**
* @param logDir
* the logDir that defines the browserName
*/
private void setBrowserName(LocalizationFile logDir) {
String name = logDir.getName();
String[] parts = name.split(File.separator);
if (parts.length > 0) {
String lastPart = parts[parts.length - 1];
if (lastPart == null || lastPart.isEmpty()) {
if (parts.length > 1) {
lastPart = parts[parts.length - 2];
}
}
this.browserName = "Log: " + lastPart;
}
}
// @Override
// public void setHighlights(HighlightSelection[] selections) {
// StyleRange[] ranges = new StyleRange[selections.length];
// for (int i = 0; i < selections.length; ++i) {
// HighlightSelection sel = selections[i];
// ranges[i] = new StyleRange(sel.start, sel.length,
// logView.getBackground(), HIGHLIGHT_COLOR);
// }
// logView.setStyleRanges(ranges);
// }
//
// @Override
// public void removeHighlights() {
// StyleRange[] ranges = logView.getStyleRanges();
// for (StyleRange style : ranges) {
// if (style.background == HIGHLIGHT_COLOR) {
// style.background = logView.getBackground();
// }
// }
// logView.setStyleRanges(ranges);
// }
}

View file

@ -0,0 +1,88 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.collaboration.ui.session;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import com.raytheon.uf.common.localization.LocalizationFile;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 22, 2012 bgonzale Initial creation
*
* </pre>
*
* @author bgonzale
* @version 1.0
*/
public class SessionMsgArchiveDialog extends Dialog {
private Shell shell;
/**
* @param parent
*/
public SessionMsgArchiveDialog(Shell parent) {
super(parent);
}
/**
* @param parent
* @param style
*/
public SessionMsgArchiveDialog(Shell parent, int style) {
super(parent, style);
}
public void open(LocalizationFile logDir) {
Shell parent = getParent();
shell = new Shell(parent.getDisplay(), SWT.TITLE | SWT.RESIZE);
shell.setText(getText());
shell.setLayout(new GridLayout(1, false));
SessionMsgArchiveBrowser smab = new SessionMsgArchiveBrowser(shell,
SWT.NONE, logDir);
shell.pack();
shell.open();
// Wait until the shell is disposed.
Display display = parent.getDisplay();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}

View file

@ -0,0 +1,66 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.collaboration.ui.session;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.viz.ui.views.CaveFloatingView;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 22, 2012 bgonzale Initial creation
*
* </pre>
*
* @author bgonzale
* @version 1.0
*/
public class SessionMsgArchiveView extends CaveFloatingView {
private SessionMsgArchiveBrowser browser;
@Override
public void createPartControl(Composite parent) {
super.createPartControl(parent);
browser = new SessionMsgArchiveBrowser(parent, SWT.NONE);
parent.setLayout(new GridLayout(1, false));
parent.layout();
}
public void setDir(LocalizationFile dir) {
browser.setDir(dir);
setPartName(browser.getBrowserName());
}
@Override
public void setFocus() {
}
}