001: /*
002: * CONFIDENTIAL AND PROPRIETARY SOURCE CODE OF
003: * NETSCAPE COMMUNICATIONS CORPORATION
004: *
005: * Copyright (c) 1996 Netscape Communications Corporation.
006: * All Rights Reserved.
007: * Use of this Source Code is subject to the terms of the applicable
008: * license agreement from Netscape Communications Corporation.
009: */
010:
011: package components;
012:
013: import applications.Desktop;
014: import applications.TaxonomyEdit;
015:
016: import graphical.IconInternalWindow;
017: import graphical.TreeWindow;
018: import soif.CSID;
019: import soif.Taxonomy;
020: import util.BTreeNode;
021:
022: import netscape.application.Alert;
023: import netscape.application.Menu;
024: import netscape.application.MenuItem;
025: import netscape.application.MenuView;
026: import netscape.application.Target;
027: import netscape.application.View;
028:
029: /* SGP: later provide methods for graphics swapping */
030: // SGP: should TTV be public?
031: public class TaxonomyTreeWindow extends TreeWindow {
032: public TaxonomyTreeView taxonomyTreeView;
033:
034: private Target m_saveTarget;
035:
036: public TaxonomyTreeWindow(int x, int y, int width, int height,
037: Taxonomy taxonomy, boolean editable, boolean menus,
038: Target saveTarget) {
039: super (x, y, width, height, null, Messages.TITLE_CATEGORY);
040:
041: taxonomyTreeView = new TaxonomyTreeView(taxonomy, editable, 0,
042: 0, width, height,
043: graphical.DragPolicy.DRAGFROMDISALLOWED,
044: graphical.DragPolicy.DRAGTODISALLOWED, true,
045: graphical.Header.spacePixels,
046: graphical.Header.folderSelPixels,
047: graphical.Header.folderPixels,
048: graphical.Header.folderSelPixels,
049: graphical.Header.folderPixels,
050: graphical.Header.branchOpenSelPixels,
051: graphical.Header.branchOpenPixels,
052: graphical.Header.branchClosedSelPixels,
053: graphical.Header.branchClosedPixels,
054: graphical.Header.imageSize, graphical.Header.pixelCount);
055:
056: setTreeView(taxonomyTreeView);
057:
058: commonConstruction(menus, saveTarget);
059: }
060:
061: public TaxonomyTreeWindow(int x, int y, int width, int height,
062: String CGILocation, String CGITarget, String CGIRead,
063: String CGIWrite, CSID csid, boolean pro, boolean editable,
064: boolean menus, Target saveTarget) {
065: super (x, y, width, height, null, Messages.TITLE_CATEGORY);
066:
067: taxonomyTreeView = new TaxonomyTreeView(CGILocation, CGITarget,
068: CGIRead, CGIWrite, csid, pro, editable, 0, 0, width,
069: height, graphical.DragPolicy.DRAGFROMDISALLOWED,
070: graphical.DragPolicy.DRAGTODISALLOWED, true,
071: graphical.Header.spacePixels,
072: graphical.Header.folderSelPixels,
073: graphical.Header.folderPixels,
074: graphical.Header.folderSelPixels,
075: graphical.Header.folderPixels,
076: graphical.Header.branchOpenSelPixels,
077: graphical.Header.branchOpenPixels,
078: graphical.Header.branchClosedSelPixels,
079: graphical.Header.branchClosedPixels,
080: graphical.Header.imageSize, graphical.Header.pixelCount);
081:
082: setTreeView(taxonomyTreeView);
083:
084: commonConstruction(menus, saveTarget);
085: }
086:
087: private void commonConstruction(boolean menus, Target saveTarget) {
088: m_saveTarget = saveTarget;
089:
090: if (menus) {
091: Menu menu = new Menu();
092: MenuItem fileMenuItem = menu
093: .addItemWithSubmenu(Messages.MENU_FILE);
094: fileMenuItem.submenu().addItem(
095: applications.Messages.CMD_TAXSAVE,
096: applications.Messages.CMD_TAXSAVE, saveTarget);
097: fileMenuItem.submenu().addItem(Messages.CMD_CLOSE,
098: Messages.CMD_CLOSE, this );
099: MenuItem windMenuItem = menu
100: .addItemWithSubmenu(Messages.MENU_EDIT);
101: windMenuItem.submenu().addItem(Messages.CMD_NEWCHILD,
102: Messages.CMD_NEWCHILD, this );
103: windMenuItem.submenu().addItem(Messages.CMD_NEWPEER,
104: Messages.CMD_NEWPEER, this );
105: windMenuItem.submenu().addItem(Messages.CMD_DELETE,
106: Messages.CMD_DELETE, this );
107: MenuView menuView = new MenuView(menu);
108: menuView.sizeToMinSize();
109: setMenuView(menuView);
110: taxonomyTreeView.hideEditButtons();
111: }
112:
113: // Set up so that close button sends a CMD_CLOSE. Then we will
114: // automatically check for unsaved changes when the close button is hit.
115: setCloseCommand(Messages.CMD_CLOSE);
116: setCloseTarget(this );
117: }
118:
119: public void performCommand(String command, Object arg) {
120: if (Messages.CMD_CLOSE.equals(command)) {
121: hide();
122: return;
123: } else if (Messages.CMD_NEWCHILD.equals(command)) {
124: taxonomyTreeView.newChildBtnPress();
125: } else if (Messages.CMD_NEWPEER.equals(command)) {
126: taxonomyTreeView.newPeerBtnPress();
127: } else if (Messages.CMD_DELETE.equals(command)) {
128: taxonomyTreeView.delBtnPress();
129: } else {
130: super .performCommand(command, arg);
131: }
132: }
133:
134: public void didResignMain() {
135: super .didResignMain();
136: taxonomyTreeView.completeEditing();
137: taxonomyTreeView.description.setStringValue("");
138: taxonomyTreeView.description.setDirty(true);
139: }
140: }
|