r483 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util sammoa-ui-swing/src/main/resources/icons
Author: fdesbois Date: 2012-08-29 11:08:29 +0200 (Wed, 29 Aug 2012) New Revision: 483 Url: http://forge.codelutin.com/repositories/revision/sammoa/483 Log: refs #1422 : - missing validation icon - improve observation table refresh with proper lines - improve colors (background/foreground) - auto-select route from observation during validation Added: trunk/sammoa-ui-swing/src/main/resources/icons/action-tick.png Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaColorHighlighter.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerOnBoard.java 2012-08-29 09:08:29 UTC (rev 483) @@ -116,8 +116,7 @@ @Override public void locationChanged(GpsLocationEvent event) { GeoPoint newLocation = event.getNewValue(); - if (!GeoPoints.isCoordinatesEmpty(newLocation) /* && newLocation.getTopiaId() == null*/) { -// lastLocation = newLocation; + if (!GeoPoints.isCoordinatesEmpty(newLocation) && newLocation.getTopiaId() == null) { newLocation.setFlight(flight); persistence.delayEntityCreation(newLocation); } Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2012-08-29 09:08:29 UTC (rev 483) @@ -26,7 +26,6 @@ import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; -import com.google.common.collect.FluentIterable; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -69,26 +68,26 @@ boolean ignoreDeleted) { return Iterables.filter(observations, inRoute(route, routes, ignoreDeleted)); } +// +// public static Observation findFirstInRoute(Iterable<Observation> observations, +// Route route, +// Iterable<Route> routes, +// boolean ignoreDeleted) { +// +// Observation result; +// if (route == null) { +// result = null; +// +// } else { +// +// result = FluentIterable.from(observations) +// .filter(inRoute(route, routes, ignoreDeleted)) +// .first() +// .orNull(); +// } +// return result; +// } - public static Observation findFirstInRoute(Iterable<Observation> observations, - Route route, - Iterable<Route> routes, - boolean ignoreDeleted) { - - Observation result; - if (route == null) { - result = null; - - } else { - - result = FluentIterable.from(observations) - .filter(inRoute(route, routes, ignoreDeleted)) - .first() - .orNull(); - } - return result; - } - public static boolean inRoute(Observation observation, Route route, Iterable<Route> routes, @@ -134,7 +133,7 @@ public static Predicate<Observation> inRoute(Route route, Iterable<Route> routes, boolean ignoreDeleted) { - return new ObservationInRoutePredicate(route, routes, ignoreDeleted); + return new InRoutePredicate(route, routes, ignoreDeleted); } public static void removeOtherSpecies(List<Observation> observations, @@ -197,7 +196,7 @@ } }; - private static class ObservationInRoutePredicate implements Predicate<Observation> { + private static class InRoutePredicate implements Predicate<Observation> { protected Route route; @@ -205,9 +204,9 @@ protected boolean ignoreDeleted; - public ObservationInRoutePredicate(Route route, - Iterable<Route> routes, - boolean ignoreDeleted) { + public InRoutePredicate(Route route, + Iterable<Route> routes, + boolean ignoreDeleted) { Preconditions.checkNotNull(route); Preconditions.checkNotNull(routes); this.route = route; Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java 2012-08-29 09:08:29 UTC (rev 483) @@ -25,6 +25,7 @@ import com.google.common.base.Function; import com.google.common.base.Objects; +import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; @@ -61,10 +62,6 @@ return Iterables.transform(routes, TO_DATE_FUNCTION); } -// public static Iterable<TransectFlight> toTransectFlights(Iterable<Route> routes) { -// return Iterables.transform(routes, TO_TRANSECT_FLIGHT_FUNCTION); -// } - public static Set<ObserverPosition> toObserverPositions(Iterable<Route> routes) { Set<ObserverPosition> result = Sets.newHashSet(); for (Route route : routes) { @@ -156,6 +153,13 @@ return getNext(routes, route, orderByDate()); } + public static Route findWithObservation(Iterable<Route> routes, + Observation observation, + boolean ignoreDeleted) { + + return Iterables.find(routes, new WithObservationPredicate(observation, routes, ignoreDeleted), null); + } + public static Date getMiddleTime(Route previousRoute, Route nextRoute) { Date previousTime = previousRoute.getBeginTime(); Date nextTime = nextRoute.getBeginTime(); @@ -202,14 +206,30 @@ } }; -// private static Function<Route, TransectFlight> TO_TRANSECT_FLIGHT_FUNCTION = new Function<Route, TransectFlight>() { -// -// @Override -// public TransectFlight apply(Route input) { -// return input.getTransectFlight(); -// } -// }; + private static class WithObservationPredicate implements Predicate<Route> { + protected Observation observation; + + protected Iterable<Route> routes; + + protected boolean ignoreDeleted; + + public WithObservationPredicate(Observation observation, + Iterable<Route> routes, + boolean ignoreDeleted) { + Preconditions.checkNotNull(observation); + Preconditions.checkNotNull(routes); + this.observation = observation; + this.routes = routes; + this.ignoreDeleted = ignoreDeleted; + } + + @Override + public boolean apply(Route input) { + return Observations.inRoute(observation, input, routes, ignoreDeleted); + } + } + private static <T> T getNext(Iterable<T> elements, final T element, final Comparator<T> comparator) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-29 09:08:29 UTC (rev 483) @@ -52,7 +52,9 @@ import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.UIManager; +import javax.swing.plaf.BorderUIResource; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Desktop; import java.io.File; import java.net.URL; @@ -113,6 +115,9 @@ SwingUtil.getLayer(ui.getBody()).setUI(new BetaLayerUI()); + UIManager.put("Table.focusCellHighlightBorder", + new BorderUIResource.LineBorderUIResource(Color.BLACK)); + setScreen(SammoaScreen.HOME); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java 2012-08-29 09:08:29 UTC (rev 483) @@ -49,14 +49,18 @@ public static final Color POSITION_RIGHT_COLOR = Color.GREEN; - public static final Color NEXT_TRANSECT_ROW_COLOR = new Color(233, 255, 235); +// public static final Color NEXT_TRANSECT_ROW_COLOR = new Color(233, 255, 235); + public static final Color NEXT_TRANSECT_ROW_COLOR = new Color(152, 106, 255); + public static final Color OBSERVATION_FOR_ROUTE_ROW_COLOR = new Color(171, 214, 255); - public static final Color ROUTE_FOR_TRANSECT_ROW_COLOR = new Color(171, 214, 255); +// public static final Color ROUTE_FOR_TRANSECT_ROW_COLOR = new Color(171, 214, 255); - public static final Color ROUTE_NO_MODIFICATION_ROW_COLOR = new Color(255, 233, 233); +// public static final Color ROUTE_NO_MODIFICATION_ROW_COLOR = new Color(255, 233, 233); + public static final Color ROUTE_NO_MODIFICATION_ROW_COLOR = Color.RED; + public static final Color FLIGHT_TRACKING_LINE_COLOR = Color.RED; public static final Color TRANSECT_LINE_COLOR = new Color(102, 0, 255); @@ -67,6 +71,8 @@ public static final Color DELETED_ROW_COLOR = Color.GRAY; - public static final Color VALID_ROW_COLOR = Color.GREEN; + public static final Color VALID_ROW_COLOR = new Color(9, 157, 20); +// public static final Color SELECTED_ROW_COLOR = new Color(171, 214, 255); + } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-29 09:08:29 UTC (rev 483) @@ -136,6 +136,7 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; +import java.awt.Color; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.ItemEvent; @@ -478,24 +479,26 @@ column.setCellRenderer(editorRenderer); } - table.addHighlighter(SammoaUtil.newColorHighlighter( + table.addHighlighter(SammoaUtil.newBackgroundColorHighlighter( new CurrentTransectHighlightPredicate(tableModel), SammoaColors.CURRENT_TRANSECT_ROW_COLOR) ); - table.addHighlighter(SammoaUtil.newColorHighlighter( + table.addHighlighter(SammoaUtil.newBackgroundColorHighlighter( new NextTransectHighlightPredicate(tableModel), SammoaColors.NEXT_TRANSECT_ROW_COLOR) ); - table.addHighlighter(SammoaUtil.newColorHighlighter( + table.addHighlighter(SammoaUtil.newForegroundColorHighlighter( new DeletedRowHighlightPredicate(getModel().getTransectFlights()), SammoaColors.DELETED_ROW_COLOR) ); - table.addHighlighter(SammoaUtil.newColorHighlighter( + table.addHighlighter(SammoaUtil.newForegroundColorHighlighter( new ValidRowHighlightPredicate(getModel().getTransectFlights()), SammoaColors.VALID_ROW_COLOR) ); table.setSortable(false); + table.setSelectionBackground(null); + table.setSelectionForeground(Color.BLACK); } startTime = timeLog.log(startTime, "afterInitUI", "decoration done (editor/renderer)"); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java 2012-08-29 09:08:29 UTC (rev 483) @@ -220,6 +220,10 @@ return getObservations().indexOf(observation); } + public int sizeObservations() { + return getObservations().size(); + } + public void setObservations(List<Observation> observations) { this.observations = observations; firePropertyChange(PROPERTY_OBSERVATIONS, null, observations); @@ -227,14 +231,14 @@ public void addObservation(Observation observation) { List<Observation> oldValue = Lists.newArrayList(getObservations()); - int index = getObservations().size(); + int index = sizeObservations(); getObservations().add(observation); fireIndexedPropertyChange(PROPERTY_OBSERVATIONS, index, oldValue, getObservations()); } public void removeObservation(Observation observation) { List<Observation> oldValue = Lists.newArrayList(getObservations()); - int index = getObservations().indexOf(observation); + int index = indexOfObservations(observation); getObservations().remove(index); fireIndexedPropertyChange(PROPERTY_OBSERVATIONS, index, oldValue, getObservations()); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-29 09:08:29 UTC (rev 483) @@ -24,6 +24,7 @@ */ import com.google.common.base.Supplier; +import com.google.common.collect.Iterables; import fr.ulr.sammoa.application.FlightService; import fr.ulr.sammoa.application.device.DeviceState; import fr.ulr.sammoa.application.device.DeviceStateEvent; @@ -284,7 +285,7 @@ // Highlighter for no modification dataTable.addHighlighter( - SammoaUtil.newColorHighlighter( + SammoaUtil.newForegroundColorHighlighter( new RouteNoModificationHighlightPredicate(tableModel), SammoaColors.ROUTE_NO_MODIFICATION_ROW_COLOR) ); @@ -302,11 +303,11 @@ NuitonValidatorScope.ERROR, NuitonValidatorScope.WARNING); - dataTable.addHighlighter(SammoaUtil.newColorHighlighter( + dataTable.addHighlighter(SammoaUtil.newForegroundColorHighlighter( new DeletedRowHighlightPredicate(flightUIModel.getRoutes()), SammoaColors.DELETED_ROW_COLOR) ); - dataTable.addHighlighter(SammoaUtil.newColorHighlighter( + dataTable.addHighlighter(SammoaUtil.newForegroundColorHighlighter( new ValidRowHighlightPredicate(flightUIModel.getRoutes()), SammoaColors.VALID_ROW_COLOR) ); @@ -342,50 +343,21 @@ ui.getObservationTableModel()) ); + // For CircleBack buttons flightUIModel.addPropertyChangeListener( - FlightUIModel.PROPERTY_FLIGHT_STATE, new PropertyChangeListener() { + FlightUIModel.PROPERTY_FLIGHT_STATE, observationUpdateListener); - @Override - public void propertyChange(PropertyChangeEvent evt) { - // les boutons sur toutes les lignes - // doivent être mis à jour, donc on fait un fire - // sur toute la table - logger.debug("Flight state changed, reload observation table data"); - ui.getObservationTableModel().fireTableDataChanged(); - } - }); - + // For highlighting depends on selected route flightUIModel.addPropertyChangeListener( - FlightUIModel.PROPERTY_ROUTE_EDIT_BEAN, new PropertyChangeListener() { + FlightUIModel.PROPERTY_ROUTE_EDIT_BEAN, observationUpdateListener); - @Override - public void propertyChange(PropertyChangeEvent evt) { - - logger.debug("Route edition/selection changed, reload observation table data"); - ui.getObservationTableModel().fireTableDataChanged(); - - FlightUIModel flightUIModel = (FlightUIModel) evt.getSource(); - - Observation observation = - Observations.findFirstInRoute(flightUIModel.getObservations(), - (Route) evt.getNewValue(), - flightUIModel.getRoutes(), - true); - - if (observation != null) { - int firstRowIndex = flightUIModel.indexOfObservations(observation); - ui.getObservationTable().scrollRowToVisible(firstRowIndex); - } - } - }); - JXTable dataTable = ui.getObservationTable(); // set combobox renderer for ObservationStatus dataTable.setDefaultEditor(ObservationStatus.class, new DefaultCellEditor(new JComboBox(ObservationStatus.values()))); dataTable.addHighlighter( - SammoaUtil.newColorHighlighter( + SammoaUtil.newBackgroundColorHighlighter( new ObservationForSelectedRouteHighlightPredicate(flightUIModel), SammoaColors.OBSERVATION_FOR_ROUTE_ROW_COLOR) ); @@ -463,6 +435,16 @@ if (logger.isInfoEnabled()) { logger.info("Select observation from index {}", newSelectedRow); } + + // We need to auto-select the route in validation mode + if (flightUIModel.isValidationMode()) { + Route route = Routes.findWithObservation( + flightUIModel.getRoutes(), observation, true); + + int routeIndex = flightUIModel.indexOfRoutes(route); + ui.getRouteTable().getSelectionModel().setSelectionInterval(routeIndex, routeIndex); + } + } else { if (logger.isInfoEnabled()) { logger.info("No observation selected"); @@ -509,11 +491,11 @@ NuitonValidatorScope.ERROR, NuitonValidatorScope.WARNING); - dataTable.addHighlighter(SammoaUtil.newColorHighlighter( + dataTable.addHighlighter(SammoaUtil.newForegroundColorHighlighter( new DeletedRowHighlightPredicate(flightUIModel.getObservations()), SammoaColors.DELETED_ROW_COLOR) ); - dataTable.addHighlighter(SammoaUtil.newColorHighlighter( + dataTable.addHighlighter(SammoaUtil.newForegroundColorHighlighter( new ValidRowHighlightPredicate(flightUIModel.getObservations()), SammoaColors.VALID_ROW_COLOR) ); @@ -548,7 +530,7 @@ validator, dataLocator ); - Highlighter highlighter = SammoaUtil.newColorHighlighter( + Highlighter highlighter = SammoaUtil.newBackgroundColorHighlighter( predicate, SwingValidatorUtil.getColor(scope)); editor.addHighlighter(highlighter); } @@ -643,6 +625,8 @@ // make tab key to focus only next editable cell table.setSelectionModel(new ForceSelectionSelectionModel()); + table.setSelectionBackground(null); + table.setSelectionForeground(Color.BLACK); // table.setSortable(context.isValidationMode()); table.setSortable(false); @@ -745,6 +729,70 @@ }); } + private PropertyChangeListener observationUpdateListener = new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + +// int selectedRow = ui.getObservationTable().getSelectedRow(); + +// ui.getObservationTableModel().fireTableDataChanged(); + + if (FlightUIModel.PROPERTY_ROUTE_EDIT_BEAN.equals(evt.getPropertyName())) { + + + Route oldValue = (Route) evt.getOldValue(); + if (oldValue != null) { + updateObservationTable(oldValue, false); + } + Route newValue = (Route) evt.getNewValue(); + if (newValue != null) { + updateObservationTable(newValue, true); + } + + } else { + + ui.getObservationTableModel().fireTableRowsUpdated( + 0, ui.getFlightUIModel().sizeObservations() - 1); + } + + +// if (selectedRow != -1) { +// ui.getObservationTable().scrollRowToVisible(selectedRow); +// ui.getObservationTable().setRowSelectionInterval(selectedRow, selectedRow); +// } + } + }; + + protected void updateObservationTable(Route route, boolean scrollToFirst) { + + FlightUIModel model = ui.getFlightUIModel(); + + Iterable<Observation> observations = + Observations.filterInRoute(model.getObservations(), route, model.getRoutes(), true); + + if (Iterables.isEmpty(observations)) { + // nothing to do + } else { + + int firstIndex = -1; + int lastIndex = -1; + for (Observation observation : observations) { + int index = model.indexOfObservations(observation); + if (firstIndex == -1 || firstIndex > index) { + firstIndex = index; + } + if (lastIndex == -1 || lastIndex < index) { + lastIndex = index; + } + } + ui.getObservationTableModel().fireTableRowsUpdated(firstIndex, lastIndex); + if (scrollToFirst) { + ui.getObservationTable().scrollRowToVisible(firstIndex); + } + } + } + private static class RouteValidatorDataLocator implements SwingListValidatorDataLocator<Route> { @Override Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaColorHighlighter.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaColorHighlighter.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaColorHighlighter.java 2012-08-29 09:08:29 UTC (rev 483) @@ -28,6 +28,7 @@ import org.jdesktop.swingx.decorator.HighlightPredicate; import org.jdesktop.swingx.util.PaintUtils; +import javax.swing.JButton; import java.awt.Color; import java.awt.Component; @@ -40,16 +41,29 @@ protected Color color; - public SammoaColorHighlighter(HighlightPredicate predicate, Color color) { + protected boolean foreground; + + public SammoaColorHighlighter(HighlightPredicate predicate, Color color, boolean foreground) { super(predicate); this.color = color; + this.foreground = foreground; } @Override protected Component doHighlight(Component component, ComponentAdapter adapter) { - component.setBackground(color); - if (adapter.isSelected()) { - component.setForeground(PaintUtils.computeForeground(color)); + if (component instanceof JButton) { + // do nothing + + } else { + if (foreground) { + component.setForeground(color); + + } else { + component.setBackground(color); + if (adapter.isSelected()) { + component.setForeground(PaintUtils.computeForeground(color)); + } + } } return component; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-29 09:08:11 UTC (rev 482) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-29 09:08:29 UTC (rev 483) @@ -36,8 +36,19 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; -import java.awt.*; +import javax.swing.Action; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JRootPane; +import javax.swing.JTable; +import javax.swing.KeyStroke; +import javax.swing.UIManager; +import java.awt.Color; +import java.awt.Component; +import java.awt.Cursor; +import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; @@ -56,10 +67,14 @@ // never instanciate util class } - public static Highlighter newColorHighlighter(HighlightPredicate predicate, Color color) { - return new SammoaColorHighlighter(predicate, color); + public static Highlighter newBackgroundColorHighlighter(HighlightPredicate predicate, Color color) { + return new SammoaColorHighlighter(predicate, color, false); } + public static Highlighter newForegroundColorHighlighter(HighlightPredicate predicate, Color color) { + return new SammoaColorHighlighter(predicate, color, true); + } + public static Object getPropertyValue(Object bean, String... properties) { Object result; try { Added: trunk/sammoa-ui-swing/src/main/resources/icons/action-tick.png =================================================================== (Binary files differ) Property changes on: trunk/sammoa-ui-swing/src/main/resources/icons/action-tick.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: svn:keywords + Author Date Id Revision HeadURL
participants (1)
-
fdesbois@users.forge.codelutin.com