Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2009-2011, EzWare
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * Redistributions of source code must retain the above copyright notice,
  * this list of conditions and the following disclaimer.Redistributions
  * in binary form must reproduce the above copyright notice, this list of
  * conditions and the following disclaimer in the documentation and/or
  * other materials provided with the distribution.Neither the name of the
  * EzWare nor the names of its contributors may be used to endorse or
  * promote products derived from this software without specific prior
  * written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
 
 package org.oxbow.swingbits.table.filter;
 
 import java.util.Map;
 
 
 
 class TableFilterColumnPopup extends PopupWindow implements MouseListener {
 
 		static class ColumnAttrs {
 		}
 
 		private boolean enabled = false;
 
 		private final CheckList<DistinctColumnItemfilterList = new CheckList.Builder().build();
 		private final JSearchTextField searchField = new JSearchTextField();
 
 		private final Map<IntegerColumnAttrscolAttrs = new HashMap<IntegerColumnAttrs>();
 	    private int mColumnIndex = -1;
 	    
 	    private final ITableFilter<?> filter;
 		private boolean searchable;
 		private boolean actionsVisible = true;
 		private boolean useTableRenderers = false;
 
 		public TableFilterColumnPopupITableFilter<?> filter ) {
 
 			supertrue );
 
 			this. = filter;
 
			filter.getTable().addPropertyChangeListener"tableHeader"new PropertyChangeListener() {
				public void propertyChange(PropertyChangeEvent evt) {
				}}
			);
				public void propertyChange(PropertyChangeEvent evt) {
				}}
			);
				public void removeUpdate(DocumentEvent e) { perform(e); }
				public void insertUpdate(DocumentEvent e) { perform(e); }
				public void changedUpdate(DocumentEvent e) { perform(e);}
				private void perform(DocumentEvent e) {
				}
			});
		}
		public void setSearchableboolean searchable ) {
			this. = searchable;
		}
		public void setSearchTranslatorIObjectToStringTranslator tranlsator ) {
			this. = tranlsator;
		}
		public void setActionsVisible(boolean actionsVisible) {
			this. = actionsVisible;
		}
		public void setUseTableRenderers(boolean reuseRenderers) {
			this. = reuseRenderers;
		}
		private void setupTableHeader() {
			if ( header != null ) header.addMouseListenerthis );
		}
		protected JComponent buildContent() {
			JPanel owner = new JPanelnew BorderLayout(3,3) );
			owner.setBorder( BorderFactory.createEmptyBorder(1, 1, 1, 1));
			owner.setPreferredSize(new Dimension(250, 150)); // default popup size
			Box commands = new Box(.);
			JToolBar toolbar = new JToolBar();
			toolbar.setFloatable(false);
			toolbar.setOpaque(false);
					"Clear all column filters"
					new ImageIcon(getClass().getResource("funnel_delete.png"))) {
				protected boolean perform() {
					return clearAllFilters();
				}
			});
			commands.addtoolbar );
			commands.add(Box.createHorizontalGlue());
			commands.addnew JButtonnew PopupWindow.CommandAction("Apply"){
				protected boolean perform() {
				}})
		     );
			commands.add( Box.createHorizontalStrut(5) );
			commands.addnew JButtonnew PopupWindow.CommandAction("Cancel")));
			commands.setBorder( BorderFactory.createEmptyBorder(3, 0, 3, 0));
			commands.setBackground(UIManager.getColor("Panel.background"));
			commands.setOpaque(true);
			if ( ) {
			}
			owner.addcommands. );
			return owner;
		}
		private boolean applyColumnFilter() {
			model.filter("".); // clear filter to get true results
			return true;
		}
		private boolean clearAllFilters() {
			return true;
		}
		public boolean isEnabled() {
			return ;
		}
		public void setEnabled(boolean enabled) {
			this. = enabled;
		}
        // Popup menus are triggered differently on different platforms
		// Therefore, isPopupTrigger should be checked in both mousePressed and mouseReleased
		// events for for proper cross-platform functionality
		public void mousePressed(MouseEvent e) {
			if (  && e.isPopupTrigger() ) showFilterPopup(e);
		}
		public void mouseReleased(MouseEvent e) {
			if (  && e.isPopupTrigger() ) showFilterPopup(e);
		}
		private void showFilterPopup(MouseEvent e) {
			// The index of the column whose header was clicked
	        int vColumnIndex = colModel.getColumnIndexAtX(e.getX());
	        if ( vColumnIndex < 0 ) return;
	        // Determine if mouse was clicked between column heads
	        Rectangle headerRect = .getTable().getTableHeader().getHeaderRect(vColumnIndex);
	        if (vColumnIndex == 0) {
	            headerRect.width -= 2;
	        } else {
	            headerRect.grow(-2, 0);
	        }
	        // Mouse was clicked between column heads
	        if (!headerRect.contains(e.getX(), e.getY())) return;
	        // restore popup's size for the column
	         = .getTable().convertColumnIndexToModel(vColumnIndex);
	        setPreferredSizegetColumnAttrs(vColumnIndex). );
	        DefaultCheckListModel<DistinctColumnItemmodel = new DefaultCheckListModel<DistinctColumnItem>(distinctItems);
	        
	        // replace empty checked items with full selection
			.setCheckedItems( CollectionUtils.isEmpty(checked)? distinctItemschecked);
			if (  ) {
			}
	        // show pop-up
			showheaderheaderRect.xheader.getHeight() );
		}
		private ColumnAttrs getColumnAttrsint column ) {
			ColumnAttrs attrs = .get(column);
			if ( attrs == null ) {
				attrs = new ColumnAttrs();
				.putcolumnattrs);
			}
			return attrs;
		}
		protected void beforeShow() {
			if (  ) {
				SwingUtilities.invokeLaternew Runnable() {
					public void run() {
					}
				});
			}
		}
		public void beforeHide() {
			// save pop-up's dimensions before pop-up becomes hidden
		}
		public void mouseClicked(MouseEvent e) {}
		public void mouseEntered(MouseEvent e) {}
		public void mouseExited(MouseEvent e) {}
	}

New to GrepCode? Check out our FAQ X