public MarketOrdersToolSettingsPanel(final Program program, final SettingsDialog settingsDialog) { super( program, settingsDialog, DialoguesSettings.get().marketOrders(), Images.TOOL_MARKET_ORDERS.getIcon()); jSaveHistory = new JCheckBox(DialoguesSettings.get().marketOrdersSaveHistory()); JLabelMultiline jSaveHistoryWarning = new JLabelMultiline(DialoguesSettings.get().saveHistoryWarning(), 2); layout.setHorizontalGroup( layout .createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jSaveHistory) .addComponent( jSaveHistoryWarning, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Integer.MAX_VALUE)); layout.setVerticalGroup( layout .createSequentialGroup() .addComponent( jSaveHistory, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jSaveHistoryWarning, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)); }
protected static boolean confirmOpenLinks(final Program program, final int size) { if (size <= 1) { return true; } int value = JOptionPane.showConfirmDialog( program.getMainWindow().getFrame(), GuiShared.get().openLinks(size), GuiShared.get().openLinksTitle(), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); return (value == JOptionPane.OK_OPTION); }
public IndustryJobsTab(final Program program) { super(program, TabsJobs.get().industry(), Images.TOOL_INDUSTRY_JOBS.getIcon(), true); ListenerClass listener = new ListenerClass(); // Table Format tableFormat = new EnumTableFormatAdaptor<IndustryJobTableFormat, MyIndustryJob>( IndustryJobTableFormat.class); // Backend eventList = program.getProfileData().getIndustryJobsEventList(); // Sorting (per column) eventList.getReadWriteLock().readLock().lock(); SortedList<MyIndustryJob> sortedList = new SortedList<MyIndustryJob>(eventList); eventList.getReadWriteLock().readLock().unlock(); // Filter eventList.getReadWriteLock().readLock().lock(); filterList = new FilterList<MyIndustryJob>(sortedList); eventList.getReadWriteLock().readLock().unlock(); filterList.addListEventListener(listener); // Table Model tableModel = EventModels.createTableModel(filterList, tableFormat); // Table jTable = new JAutoColumnTable(program, tableModel); jTable.setCellSelectionEnabled(true); PaddingTableCellRenderer.install(jTable, 1); // Sorting TableComparatorChooser.install( jTable, sortedList, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat); // Selection Model selectionModel = EventModels.createSelectionModel(filterList); selectionModel.setSelectionMode(ListSelection.MULTIPLE_INTERVAL_SELECTION_DEFENSIVE); jTable.setSelectionModel(selectionModel); // Listeners installTable(jTable, NAME); // Scroll JScrollPane jTableScroll = new JScrollPane(jTable); // Table Filter Map<String, List<Filter>> defaultFilters = new HashMap<String, List<Filter>>(); List<Filter> filter; filter = new ArrayList<Filter>(); filter.add( new Filter( LogicType.AND, IndustryJobTableFormat.STATE, CompareType.EQUALS_NOT, IndustryJobState.STATE_DELIVERED.toString())); defaultFilters.put(TabsJobs.get().active(), filter); filter = new ArrayList<Filter>(); filter.add( new Filter( LogicType.AND, IndustryJobTableFormat.STATE, CompareType.EQUALS, IndustryJobState.STATE_DELIVERED.toString())); defaultFilters.put(TabsJobs.get().completed(), filter); filterControl = new IndustryJobsFilterControl( program.getMainWindow().getFrame(), tableFormat, sortedList, filterList, Settings.get().getTableFilters(NAME), defaultFilters); // Menu installMenu(program, new JobsTableMenu(), jTable, MyIndustryJob.class); jInventionSuccess = StatusPanel.createLabel( TabsJobs.get().inventionSuccess(), Images.JOBS_INVENTION_SUCCESS.getIcon()); this.addStatusbarLabel(jInventionSuccess); jManufactureOutputValue = StatusPanel.createLabel( TabsJobs.get().manufactureJobsValue(), Images.TOOL_VALUES.getIcon()); this.addStatusbarLabel(jManufactureOutputValue); layout.setHorizontalGroup( layout .createParallelGroup() .addComponent(filterControl.getPanel()) .addComponent(jTableScroll, 700, 700, Short.MAX_VALUE)); layout.setVerticalGroup( layout .createSequentialGroup() .addComponent(filterControl.getPanel()) .addComponent(jTableScroll, 100, 400, Short.MAX_VALUE)); }
FilterPanel(final FilterGui<E> gui, final FilterControl<E> filterControl) { this.gui = gui; this.filterControl = filterControl; ListenerClass listener = new ListenerClass(); allColumns = new ArrayList<EnumTableColumn<E>>(); allColumns.add(new AllColumn<E>()); allColumns.addAll(filterControl.getColumns()); numericColumns = new ArrayList<EnumTableColumn<E>>(); for (EnumTableColumn<E> object : filterControl.getColumns()) { if (filterControl.isNumeric(object)) { numericColumns.add(object); } } dateColumns = new ArrayList<EnumTableColumn<E>>(); for (EnumTableColumn<E> object : filterControl.getColumns()) { if (filterControl.isDate(object)) { dateColumns.add(object); } } jEnabled = new JCheckBox(); jEnabled.setSelected(true); jEnabled.addActionListener(listener); jEnabled.setActionCommand(FilterPanelAction.FILTER.name()); jLogic = new JComboBox<LogicType>(LogicType.values()); jLogic.setPrototypeDisplayValue(LogicType.AND); jLogic.addActionListener(listener); jLogic.setActionCommand(FilterPanelAction.FILTER.name()); JComboBox<String> jComboBox = new JComboBox<String>(); FontMetrics fontMetrics = jComboBox.getFontMetrics(jComboBox.getFont()); EnumTableColumn<E> longestColumn = null; for (EnumTableColumn<E> column : allColumns) { if (longestColumn == null || fontMetrics.stringWidth(longestColumn.getColumnName()) < fontMetrics.stringWidth(column.getColumnName())) { longestColumn = column; } } jColumn = new JComboBox<EnumTableColumn<E>>(new ListComboBoxModel<EnumTableColumn<E>>(allColumns)); jColumn.setPrototypeDisplayValue(longestColumn); jColumn.addActionListener(listener); jColumn.setActionCommand(FilterPanelAction.FILTER.name()); jCompare = new JComboBox<CompareType>(); jCompare.setPrototypeDisplayValue(CompareType.CONTAINS_NOT_COLUMN); jCompare.addActionListener(listener); jCompare.setActionCommand(FilterPanelAction.FILTER.name()); jText = new JTextField(); jText.getDocument().addDocumentListener(listener); jText.addKeyListener(listener); jCompareColumn = new JComboBox<EnumTableColumn<E>>(); jCompareColumn.setPrototypeDisplayValue(longestColumn); jCompareColumn.addActionListener(listener); jCompareColumn.setActionCommand(FilterPanelAction.FILTER.name()); jDate = new JDateChooser(false); jDate.addDateChangeListener(listener); jSpacing = new JLabel(); jRemove = new JButton(); jRemove.setIcon(Images.EDIT_DELETE.getIcon()); jRemove.addActionListener(listener); jRemove.setActionCommand(FilterPanelAction.REMOVE.name()); timer = new Timer(500, listener); timer.setActionCommand(FilterPanelAction.FILTER_TIMER.name()); jPanel = new JPanel(); layout = new GroupLayout(jPanel); jPanel.setLayout(layout); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(false); layout.setHorizontalGroup( layout .createSequentialGroup() .addComponent(jEnabled, 30, 30, 30) .addComponent( jLogic, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent( jColumn, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent( jCompare, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(jText, 100, 100, Integer.MAX_VALUE) .addComponent( jCompareColumn, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent( jDate, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(jSpacing, 0, 0, Integer.MAX_VALUE) .addComponent(jRemove, 30, 30, 30)); layout.setVerticalGroup( layout .createParallelGroup() .addComponent( jEnabled, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jLogic, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jColumn, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jCompare, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jText, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jCompareColumn, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jDate, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jSpacing, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight()) .addComponent( jRemove, Program.getButtonsHeight(), Program.getButtonsHeight(), Program.getButtonsHeight())); updateNumeric(false); }