Solved! Go to Solution.
values = [row[0] for row in arcpy.da.SearchCursor(layer, ["SampleYear"])] for uniqueVal in sorted(set(values)): self.items.append(uniqueVal)
with arcpy.da.SearchCursor(layer, ["SampleYear"]) as cursor: for row in cursor: self.items.append(row[0])
import arcpy import pythonaddins class ComboBoxClass1(object): """Implementation for UserData_addin.combobox (ComboBox)""" def __init__(self): self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWW' self.width = 'WWWWWW' def onSelChange(self, selection): arcpy.SelectLayerByAttribute_management(layer, "NEW_SELECTION", "NAME = " + selection) arcpy.RefreshActiveView() def onFocus(self, focused): self.mxd = arcpy.mapping.MapDocument('current') global layer layer = arcpy.mapping.ListLayers(self.mxd, "Stream_Temperatures")[0] self.items = [] with arcpy.da.SearchCursor(layer, ["SampleYear"]) as cursor: for row in cursor: self.items.append(row[0])
arcpy.SelectLayerByAttribute_management(layer, "NEW_SELECTION", "NAME = '" + selection + "'")
values = [row[0] for row in arcpy.da.SearchCursor(layer, ["SampleYear"])] for uniqueVal in sorted(set(values)): self.items.append(uniqueVal)
with arcpy.da.SearchCursor(layer, ["SampleYear"]) as cursor: for row in cursor: self.items.append(row[0])
import arcpy import pythonaddins class ComboBoxClass1(object): """Implementation for UserData_addin.combobox (ComboBox)""" def __init__(self): self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWW' self.width = 'WWWWWW' def onSelChange(self, selection): self.mxd = arcpy.mapping.MapDocument('current') layer2 = arcpy.mapping.ListLayers(self.mxd, "a dummy layer")[0] arcpy.SelectLayerByAttribute_management(layer2, "NEW_SELECTION", "NAME = " + selection) arcpy.RefreshActiveView() def onFocus(self, focused): self.mxd = arcpy.mapping.MapDocument('current') layer = arcpy.mapping.ListLayers(self.mxd, "Stream_Temperatures")[0] self.items = [] values = [row[0] for row in arcpy.da.SearchCursor(layer, ["SampleYear"])] for uniqueVal in sorted(set(values)): self.items.append(uniqueVal)
Amazing! I got it to work. What a happy camper I am right now!
One little tweak would be nice though.... At this point, when the user selects a year, it works perfectly. BUT - the other years that were available before all disappear. For instance, a particular station has the following years of data: 2009, 2010, 2011. When you select 2009, the other years (2010 and 2011) are no longer displayed in the combo box.
Is there a way upon selection to keep these other years still displayed?
Thanks guys!
Katie
import arcpy import pythonaddins class ComboBoxClass1(object): """Implementation for UserData_addin.combobox (ComboBox)""" def __init__(self): self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWW' self.width = 'WWWWWW' def onSelChange(self, selection): layer = r"C:\temp\python\test.gdb\Stream_Temperatures" arcpy.MakeFeatureLayer_management(layer, "Selection") arcpy.SelectLayerByAttribute_management("Selection", "NEW_SELECTION", "SampleYear = '" + selection + "'") arcpy.RefreshActiveView() def onFocus(self, focused): layer = r"C:\temp\python\test.gdb\Stream_Temperatures" self.items = [] values = [row[0] for row in arcpy.da.SearchCursor(layer, ["SampleYear"])] for uniqueVal in sorted(set(values)): self.items.append(uniqueVal)
class WODate(object): """Implementation for woToolkit_addin.combobox_3 (ComboBox)""" def __init__(self): self.items = ["05/02/2010", "04/20/2011", "05/20/2012", "05/20/2013", "01/20/2014"] self.editable = False self.enabled = True self.dropdownWidth = 'WWWWWWWWWWW' self.width = 'WWWWWWWWWWW' def onSelChange(self, selection): pass def onEditChange(self, text): pass def onFocus(self, focused): pass def onEnter(self): pass def refresh(self): pass