*/
package jexer;
+import java.io.IOException;
+import java.text.MessageFormat;
import java.util.ResourceBundle;
import jexer.event.TCommandEvent;
public void onFocus() {
// Enable the table menu items.
getApplication().enableMenuItem(TMenu.MID_CUT);
+ getApplication().enableMenuItem(TMenu.MID_TABLE_VIEW_ROW_LABELS);
+ getApplication().enableMenuItem(TMenu.MID_TABLE_VIEW_COLUMN_LABELS);
+ getApplication().enableMenuItem(TMenu.MID_TABLE_VIEW_HIGHLIGHT_ROW);
+ getApplication().enableMenuItem(TMenu.MID_TABLE_VIEW_HIGHLIGHT_COLUMN);
getApplication().enableMenuItem(TMenu.MID_TABLE_BORDER_NONE);
getApplication().enableMenuItem(TMenu.MID_TABLE_BORDER_ALL);
getApplication().enableMenuItem(TMenu.MID_TABLE_BORDER_RIGHT);
public void onUnfocus() {
// Disable the table menu items.
getApplication().disableMenuItem(TMenu.MID_CUT);
+ getApplication().disableMenuItem(TMenu.MID_TABLE_VIEW_ROW_LABELS);
+ getApplication().disableMenuItem(TMenu.MID_TABLE_VIEW_COLUMN_LABELS);
+ getApplication().disableMenuItem(TMenu.MID_TABLE_VIEW_HIGHLIGHT_ROW);
+ getApplication().disableMenuItem(TMenu.MID_TABLE_VIEW_HIGHLIGHT_COLUMN);
getApplication().disableMenuItem(TMenu.MID_TABLE_BORDER_NONE);
getApplication().disableMenuItem(TMenu.MID_TABLE_BORDER_ALL);
getApplication().disableMenuItem(TMenu.MID_TABLE_BORDER_RIGHT);
// TWindow ----------------------------------------------------------------
// ------------------------------------------------------------------------
- /**
- * Draw the window.
- */
- @Override
- public void draw() {
- // Draw as normal.
- super.draw();
-
- // Add borders on rows and columns.
- // TODO
- }
-
/**
* Handle mouse press events.
*
if (mouseOnTable(mouse)) {
// The table might have changed, update the scollbars.
- // TODO
- /*
- setBottomValue(editField.getMaximumRowNumber());
- setVerticalValue(editField.getVisibleRowNumber());
- setRightValue(editField.getMaximumColumnNumber());
- setHorizontalValue(editField.getEditingColumnNumber());
- */
- } else {
- if (mouse.isMouseWheelUp() || mouse.isMouseWheelDown()) {
- // Vertical scrollbar actions
- // TODO
- // editField.setVisibleRowNumber(getVerticalValue());
- }
+ setBottomValue(tableField.getRowCount() - 1);
+ setVerticalValue(tableField.getSelectedRowNumber());
+ setRightValue(tableField.getColumnCount() - 1);
+ setHorizontalValue(tableField.getSelectedColumnNumber());
}
}
super.onMouseUp(mouse);
if (mouse.isMouse1() && mouseOnVerticalScroller(mouse)) {
- // Clicked on vertical scrollbar
- // TODO
- // editField.setVisibleRowNumber(getVerticalValue());
+ // Clicked/dragged on vertical scrollbar.
+ tableField.setSelectedRowNumber(getVerticalValue());
+ }
+ if (mouse.isMouse1() && mouseOnHorizontalScroller(mouse)) {
+ // Clicked/dragged on horizontal scrollbar.
+ tableField.setSelectedColumnNumber(getHorizontalValue());
}
-
- // TODO: horizontal scrolling
}
/**
super.onMouseMotion(mouse);
if (mouseOnTable(mouse) && mouse.isMouse1()) {
- // The editor might have changed, update the scollbars.
- // TODO
- /*
- setBottomValue(editField.getMaximumRowNumber());
- setVerticalValue(editField.getVisibleRowNumber());
- setRightValue(editField.getMaximumColumnNumber());
- setHorizontalValue(editField.getEditingColumnNumber());
- */
+ // The table might have changed, update the scollbars.
+ setBottomValue(tableField.getRowCount() - 1);
+ setVerticalValue(tableField.getSelectedRowNumber());
+ setRightValue(tableField.getColumnCount() - 1);
+ setHorizontalValue(tableField.getSelectedColumnNumber());
} else {
if (mouse.isMouse1() && mouseOnVerticalScroller(mouse)) {
- // Clicked/dragged on vertical scrollbar
- // TODO
- // editField.setVisibleRowNumber(getVerticalValue());
+ // Clicked/dragged on vertical scrollbar.
+ tableField.setSelectedRowNumber(getVerticalValue());
+ }
+ if (mouse.isMouse1() && mouseOnHorizontalScroller(mouse)) {
+ // Clicked/dragged on horizontal scrollbar.
+ tableField.setSelectedColumnNumber(getHorizontalValue());
}
-
- // TODO: horizontal scrolling
}
}
// Use TWidget's code to pass the event to the children.
super.onKeypress(keypress);
- // The editor might have changed, update the scollbars.
- // TODO
- /*
- setBottomValue(editField.getMaximumRowNumber());
- setVerticalValue(editField.getVisibleRowNumber());
- setRightValue(editField.getMaximumColumnNumber());
- setHorizontalValue(editField.getEditingColumnNumber());
- */
+ // The table might have changed, update the scollbars.
+ setBottomValue(tableField.getRowCount() - 1);
+ setVerticalValue(tableField.getSelectedRowNumber());
+ setRightValue(tableField.getColumnCount() - 1);
+ setHorizontalValue(tableField.getSelectedColumnNumber());
}
/**
}
}
+ /**
+ * Method that subclasses can override to handle posted command events.
+ *
+ * @param command command event
+ */
+ @Override
+ public void onCommand(final TCommandEvent command) {
+ if (command.equals(cmOpen)) {
+ try {
+ String filename = fileOpenBox(".");
+ if (filename != null) {
+ try {
+ // TODO
+ if (false) {
+ tableField.saveToFilename(filename);
+ }
+ } catch (IOException e) {
+ messageBox(i18n.getString("errorDialogTitle"),
+ MessageFormat.format(i18n.
+ getString("errorReadingFile"), e.getMessage()));
+ }
+ }
+ } catch (IOException e) {
+ messageBox(i18n.getString("errorDialogTitle"),
+ MessageFormat.format(i18n.
+ getString("errorOpeningFileDialog"), e.getMessage()));
+ }
+ return;
+ }
+
+ if (command.equals(cmSave)) {
+ try {
+ String filename = fileSaveBox(".");
+ if (filename != null) {
+ tableField.saveToFilename(filename);
+ }
+ } catch (IOException e) {
+ messageBox(i18n.getString("errorDialogTitle"),
+ MessageFormat.format(i18n.
+ getString("errorSavingFile"), e.getMessage()));
+ }
+ return;
+ }
+
+ // Didn't handle it, let children get it instead
+ super.onCommand(command);
+ }
+
// ------------------------------------------------------------------------
// TTableWindow -----------------------------------------------------------
// ------------------------------------------------------------------------
vScroller = new TVScroller(this, getWidth() - 2, 0, getHeight() - 2);
setMinimumWindowWidth(25);
setMinimumWindowHeight(10);
- setTopValue(1);
- // setBottomValue(editField.getMaximumRowNumber());
- setLeftValue(1);
- setRightValue(tableField.getMaximumWidth());
+ setTopValue(tableField.getSelectedRowNumber());
+ setBottomValue(tableField.getRowCount() - 1);
+ setLeftValue(tableField.getSelectedColumnNumber());
+ setRightValue(tableField.getColumnCount() - 1);
statusBar = newStatusBar(i18n.getString("statusBar"));
statusBar.addShortcutKeypress(kbF1, cmHelp,
i18n.getString("statusBarHelp"));
- /*
+
statusBar.addShortcutKeypress(kbF2, cmSave,
i18n.getString("statusBarSave"));
statusBar.addShortcutKeypress(kbF3, cmOpen,
i18n.getString("statusBarOpen"));
- */
statusBar.addShortcutKeypress(kbF10, cmMenu,
i18n.getString("statusBarMenu"));
}