1414import com .intellij .ui .ListCellRendererWrapper ;
1515import com .microsoft .azure .toolkit .ide .appservice .function .FunctionAppConfig ;
1616import com .microsoft .azure .toolkit .ide .appservice .model .DeploymentSlotConfig ;
17+ import com .microsoft .azure .toolkit .intellij .common .AzureFormPanel ;
1718import com .microsoft .azure .toolkit .intellij .legacy .common .AzureSettingPanel ;
1819import com .microsoft .azure .toolkit .intellij .legacy .function .FunctionAppComboBox ;
1920import com .microsoft .azure .toolkit .intellij .legacy .function .runner .component .table .FunctionAppSettingsTable ;
2526import com .microsoft .azure .toolkit .lib .appservice .AppServiceAppBase ;
2627import com .microsoft .azure .toolkit .lib .appservice .function .AzureFunctions ;
2728import com .microsoft .azure .toolkit .lib .common .form .AzureFormInput ;
28- import com .microsoft .azure .toolkit .lib .common .form .AzureValidationInfo ;
2929import com .microsoft .azure .toolkit .lib .common .model .AbstractAzResource ;
3030import com .microsoft .azure .toolkit .lib .common .task .AzureTask ;
3131import com .microsoft .azure .toolkit .lib .common .task .AzureTaskManager ;
4545import java .util .Objects ;
4646import java .util .Optional ;
4747import java .util .UUID ;
48- import java .util .stream .Collectors ;
4948
5049import static com .microsoft .azure .toolkit .intellij .common .AzureBundle .message ;
5150
5251
53- public class FunctionDeploymentPanel extends AzureSettingPanel <FunctionDeployConfiguration > {
52+ public class FunctionDeploymentPanel extends AzureSettingPanel <FunctionDeployConfiguration > implements AzureFormPanel < FunctionDeployConfiguration > {
5453
5554 private JPanel pnlRoot ;
5655 private HyperlinkLabel lblCreateFunctionApp ;
@@ -66,9 +65,11 @@ public class FunctionDeploymentPanel extends AzureSettingPanel<FunctionDeployCon
6665 private String appSettingsKey ;
6766 private String appSettingsResourceId ;
6867 private Module previousModule = null ;
68+ private final FunctionDeployConfiguration configuration ;
6969
7070 public FunctionDeploymentPanel (@ NotNull Project project , @ NotNull FunctionDeployConfiguration functionDeployConfiguration ) {
7171 super (project );
72+ this .configuration = functionDeployConfiguration ;
7273 this .appSettingsKey = StringUtils .firstNonBlank (functionDeployConfiguration .getAppSettingsKey (), UUID .randomUUID ().toString ());
7374 $$$setupUI$$$ ();
7475
@@ -261,12 +262,21 @@ private void toggleDeploymentSlot(boolean isDeployToSlot) {
261262 cbDeploymentSlot .validateValueAsync ();
262263 }
263264
264- // todo: @hanli migrate to AzureFormInput
265- public List <AzureValidationInfo > getAllValidationInfos (final boolean revalidateIfNone ) {
266- final List <AzureFormInput <?>> inputs = Arrays .asList (functionAppComboBox , cbDeploymentSlot );
267- return inputs .stream ()
268- .map (input -> input .getValidationInfo (revalidateIfNone ))
269- .filter (Objects ::nonNull ).collect (Collectors .toList ());
265+ @ Override
266+ public void setValue (FunctionDeployConfiguration data ) {
267+ resetFromConfig (data );
268+ }
269+
270+ @ Override
271+ public FunctionDeployConfiguration getValue () {
272+ final FunctionDeployConfiguration result = new FunctionDeployConfiguration (configuration .getProject (), configuration .getFactory (), configuration .getName ());
273+ apply (result );
274+ return result ;
275+ }
276+
277+ @ Override
278+ public List <AzureFormInput <?>> getInputs () {
279+ return Arrays .asList (functionAppComboBox , cbDeploymentSlot );
270280 }
271281
272282 @ Nullable
@@ -280,8 +290,4 @@ private String getResourceId(@Nonnull FunctionAppConfig config, @Nullable Deploy
280290 .orElse (null );
281291 }
282292 }
283-
284- // CHECKSTYLE IGNORE check FOR NEXT 1 LINES
285- void $$$setupUI$$$ () {
286- }
287293}
0 commit comments